On understanding types, data abstraction, and polymorphism

On understanding types, data abstraction, and polymorphism