Rationale

This chapter treats polymorphism from a foundational perspective. It characterizes abstract inheritance as employed in knowledge representation and proceeds with a formal definition of the subtype relation, culminating in a family of calculi for a type theoretical analysis of the constructs employed in object-oriented programming. The features studied include generic types, overloading, data hiding and self-references.