Strong Typing vs. Polymorphism Inheriting functions that take or return class values causes typing problems. But neither copy nor equal is legal. Problem with equal is more fundamental. Since ColorPoint.equal overrides Point.equal it will be executed, but it expects its argument to be a ColorPoint with a col field. Garbage collection avoids need for explicit deallocation.
All methods are virtual by default.
Separates notion of class interface from class implementation . Introduces package as large-scale unit of compilation. Underlying typing restrictions remain.