topical media & game development
Abstract inheritance
1
abstract inheritance
-- declarative relation
inheritance networks
-- non-monotonic reasoning
taxonomic structure
-- predicate calculus
slide
:
Section 9.1: Abstract inheritance
The subtype relation
2
types
-- sets of values
the subtype relation
-- refinement rules
functions
-- contravariance
objects
-- as records
slide
:
Section 9.2: The subtype relation
Flavors of polymorphism
3
typing
-- protection against errors
flavors
-- parametric, inclusion, overloading, coercion
inheritance
-- incremental modification mechanism
slide
:
Section 9.3: Flavors of polymorphism
Type abstraction
4
subtypes
-- typed lambda calculus
overloading
-- intersection types
bounded polymorphism
-- generics and inheritance
slide
:
Section 9.4: Type abstraction
Existential types
5
hiding
-- existential types
packages
-- abstract data types
slide
:
Section 9.5: Existential types
Self-reference
6
self-reference
-- recursive types
object semantics
-- unrolling
inheritance
-- dynamic binding
subtyping
-- inconsistencies
slide
:
Section 9.6: Self-reference