Product Design, Manufacturing & Innovation Resources
Casa » Ereditarietà (programmazione OOP)

Ereditarietà (programmazione OOP)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmatore che codifica l'eredità nella programmazione orientata agli oggetti in un ufficio moderno.

(Immagine generata a solo scopo illustrativo)

L'ereditarietà è un meccanismo in OOP dove una nuova classe (sottoclasse o classe derivata) è basata su una classe esistente (superclasse o classe base), ereditandone attributi e metodi. Ciò favorisce il riutilizzo del codice e stabilisce una gerarchia naturale tra le classi. La sottoclasse può estendere o sovrascrivere il comportamento ereditato, consentendo implementazioni più specifiche pur mantenendo un'interfaccia comune.

L'ereditarietà facilita una relazione "è un" tra le classi. Ad esempio, un "Cane" è un tipo di "Animale". In questo scenario, "Animale" sarebbe la superclasse, contenente attributi e metodi generali come "età" e "mangia()". La classe "Cane" sarebbe la sottoclasse, che eredita queste proprietà e aggiunge le proprie specifiche, come "razza" e "abbaia()". Ciò evita la duplicazione del codice, poiché la logica comune viene definita una sola volta nella superclasse e riutilizzata da tutte le sue sottoclassi. Le modifiche apportate alla superclasse vengono propagate automaticamente a tutte le sottoclassi, semplificando la manutenzione.

Esistono diversi tipi di ereditarietà, tra cui l'ereditarietà singola (una classe eredita da una sola superclasse), l'ereditarietà multipla (una classe eredita da più di una superclasse) e l'ereditarietà multilivello (una classe eredita da un'altra classe che a sua volta è una sottoclasse). Sebbene potente, l'ereditarietà può anche introdurre complessità e un forte accoppiamento tra superclassi e sottoclassi. Un uso eccessivo può portare a gerarchie profonde e intricate, difficili da comprendere e gestire. La progettazione moderna spesso privilegia la composizione rispetto all'ereditarietà, dove un oggetto contiene un'istanza di un altro oggetto per ottenere il riutilizzo del codice, rappresentando una relazione "ha un".

UNESCO Nomenclature: 1203
- Informatica

Tipo

Sistema astratto

Interruzione

Finanziario

Utilizzo

Uso diffuso

Precursori

  • il concetto di classificazione gerarchica in biologia e filosofia
  • strutture dati che potrebbero contenere altre strutture dati
  • la necessità di riutilizzo del codice nei grandi sistemi software
  • la progettazione del linguaggio simula, che ha introdotto classi ed ereditarietà

Applicazioni

  • gui widget toolkits (e.g., a ‘button’ class inheriting from a ‘control’ class)
  • framework per lo sviluppo web (ad esempio, classi controller che ereditano da un controller di base)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • modellazione delle classificazioni biologiche
  • creazione di tipi di eccezione specializzati nei linguaggi di programmazione

Brevetti:

NA

Idee e potenziali innovazioni

A causa dell'eliminazione del traffico generato dai bot, che attualmente supera i 40.000 al giorno, questo contenuto è riservato ai membri della community.
> Accedi O > Registrati L'accesso a questo contenuto, così come a tutti gli altri contenuti e strumenti riservati, è (100% gratuito).

Argomenti correlati: ereditarietà, sottoclasse, superclasse, classe derivata, classe base, riutilizzo del codice, gerarchia, relazione "è un", polimorfismo, overriding.

Contesto storico

Ereditarietà (programmazione OOP)

1953
1960
1960
1967
1970
1970
1970
1952
1956
1960
1967
1967
1970
1970
1970

(se la data è sconosciuta o non rilevante, ad esempio "meccanica dei fluidi", viene fornita una stima approssimativa della sua notevole comparsa)

Invenzioni, innovazioni e principi tecnici correlati

Le immagini a grandezza naturale e i download sono disponibili, 100% gratuitamente, solo per i membri registrati.

> Login <