function type shape implements necessary draw calling code remain indifferent particular type shape drawn another type abstraction simplifies code external class hierarchy enables strong separation concerns open recursion languages support open recursion object methods call methods object including typically using special variable keyword called code code code self code variable ''late bound'' allows method defined one class invoke another method defined later
Formal science Computer science Programming languages Object-oriented programming