Home » Inheritance (OOP programming)

Inheritance (OOP programming)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmer coding inheritance in object-oriented programming at a modern office.

Inheritance is a mechanism in OOP where a new class (subclass or derived class) is based on an existing class (superclass or base class), inheriting its attributes and methods. This supports code reusability and establishes a natural hierarchy between classes. The subclass can extend or override the inherited behavior, allowing for more specific implementations while maintaining a common interface.

Inheritance facilitates an “is-a” relationship between classes. For example, a ‘Dog’ is a type of ‘Animal’. In this scenario, ‘Animal’ would be the superclass, containing general attributes and methods like ‘age’ and ‘eat()’. The ‘Dog’ class would be the subclass, inheriting these properties and adding its own specific ones, like ‘breed’ and ‘bark()’. This avoids code duplication, as the common logic is defined once in the superclass and reused by all its subclasses. Changes made to the superclass are automatically propagated to all subclasses, simplifying maintenance.

There are different types of inheritance, including single inheritance (a class inherits from only one superclass), multiple inheritance (a class inherits from more than one superclass), and multilevel inheritance (a class inherits from another class which itself is a subclass). While powerful, inheritance can also introduce complexity and tight coupling between superclasses and subclasses. Overuse can lead to deep and convoluted hierarchies that are difficult to understand and maintain. Modern design often favors composition over inheritance, where an object contains an instance of another object to achieve code reuse, representing a “has-a” relationship.

UNESCO Nomenclature: 1203
– Computer science

Type

Abstract System

Disruption

Substancial

Usage

Widespread Use

Precursors

  • the concept of hierarchical classification in biology and philosophy
  • data structures that could contain other data structures
  • the need for code reuse in large software systems
  • the design of the simula language, which introduced classes and inheritance

Applications

  • gui widget toolkits (e.g., a ‘button’ class inheriting from a ‘control’ class)
  • frameworks for web development (e.g., controller classes inheriting from a base controller)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • modeling biological classifications
  • creating specialized exception types in programming languages

Patents:

NA

Potential Innovations Ideas

Professionals (100% free) Membership Required

You must be a Professionals (100% free) member to access this content.

Join Now

Already a member? Log in here
Related to: inheritance, subclass, superclass, derived class, base class, code reuse, hierarchy, is-a relationship, polymorphism, overriding.

Leave a Reply

Your email address will not be published. Required fields are marked *

AVAILABLE FOR NEW CHALLENGES
Mechanical Engineer, Project, Process Engineering or R&D Manager
Effective product development

Available for a new challenge on short notice.
Contact me on LinkedIn
Plastic metal electronics integration, Design-to-cost, GMP, Ergonomics, Medium to high-volume devices & consumables, Lean Manufacturing, Regulated industries, CE & FDA, CAD, Solidworks, Lean Sigma Black Belt, medical ISO 13485

We are looking for a new sponsor

 

Your company or institution is into technique, science or research ?
> send us a message <

Receive all new articles
Free, no spam, email not distributed nor resold

or you can get your full membership -for free- to access all restricted content >here<

Historical Context

(if date is unknown or not relevant, e.g. "fluid mechanics", a rounded estimation of its notable emergence is provided)

Related Invention, Innovation & Technical Principles

Scroll to Top

You May Also Like