abstract class
concrete class
abstract method
function overriding
pure abstract class
interface
super type
subtype
polymorphism
late binding
heterogeneous array