Questions about Inheritance (object-oriented programming)

Short answers, pulled from the story.

Who created the Simula 67 programming language that introduced inheritance in 1967?

Ole-Johan Dahl and Kristen Nygaard presented the design for Simula 67 in 1967. This language allowed specifying objects belonging to different classes while sharing common properties.

What is the difference between single inheritance and multiple inheritance in object-oriented programming?

Single inheritance occurs when a class acquires features from one superclass without exception for constructors or destructors. Multiple inheritance allows one class to inherit features from more than one parent class simultaneously.

Why does implementation inheritance differ from subtyping in programming language theory?

Subtyping establishes an is-a relationship whereas inheritance only reuses implementation establishing a syntactic relationship. Inheritance does not ensure behavioral subtyping even if it commonly used for subtype relationships.

How does C++ syntax indicate that a subclass inherits from a superclass using visibility modifiers?

The colon indicates that the subclass inherits from the superclass in C++ syntax with optional private or public visibility modifiers. Default visibility remains private when no modifier appears in the declaration.

What problems did Allen Holub identify regarding complex inheritance hierarchies in the late 1990s?

Allen Holub identified the fragile base class problem as introducing unnecessary coupling through implementation inheritance. Complex inheritance within insufficiently mature designs leads to the yo-yo problem creating many very thin layers of code.