— Ch. 1 · The 1967 Simula Breakthrough —
Inheritance (object-oriented programming).
~4 min read · Ch. 1 of 6
In 1967, Ole-Johan Dahl and Kristen Nygaard presented a design that allowed specifying objects belonging to different classes while sharing common properties. This idea first appeared in the Simula 67 programming language. The concept built upon earlier remarks Tony Hoare made about records in 1966 regarding record subclasses with private fields. Simula 67 collected common properties into a superclass where each subclass could potentially have its own superclass. Values of a subclass became compound objects consisting of prefix parts from various superclasses plus a main part belonging to the subclass itself. These parts were all concatenated together so attributes remained accessible via dot notation. The idea then spread to Smalltalk, C++, Java, Python, and many other languages.
Single And Multiple Inheritance Types
A class acquiring features from one superclass defines single inheritance. A derived class inherits the properties of another class without exception for constructors or destructors. One class can inherit features from more than one parent class through multiple inheritance. Multilevel inheritance occurs when a subclass is inherited from another subclass creating an inheritance path like ABC. Class B serves as an intermediate base class linking inheritance between A and C. The chain ABC represents this multilevel structure extending to any number of levels. Hierarchical inheritance happens when one class acts as a superclass for more than one subclass. Both B and C share parent class A yet remain separate subclasses. Hybrid inheritance mixes two or more types occurring when class A has subclass B which has two subclasses C and D.