A programming construct that supports writing code that will work with entities that are not yet defined.