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 toolkit di widget (ad esempio, una classe ‘button’ che eredita da una classe ‘control’)
  • 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
  • creating specialized exception types in programming languages

Brevetti:

NA

Idee e potenziali innovazioni

  • architetture di plugin estensibili per software come WordPress o Vscode
  • customizable user interface themes in operating systems
  • trasferimento dell'apprendimento nelle reti neurali in cui un modello di base viene esteso per un nuovo compito
  • sistemi di controllo delle versioni per componenti software che utilizzano gerarchie di classi
  • livelli di accesso ai dati generici che possono essere specializzati per diversi database (ad esempio, sql, nosql)
  • sistemi di entità basati su componenti nei motori di gioco
  • protocolli di sicurezza a strati che ereditano da uno standard di protocollo di base
  • quadri di modellazione finanziaria estensibili
  • comportamenti robotici personalizzabili che ereditano da una piattaforma robotica di base
  • linguaggi specifici del dominio (DSL) creati estendendo una grammatica del linguaggio di base
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)

decimo anno anniversario

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

> Login <