Differenza tra eredità e portacontainer

Differenza tra eredità e portacontainer
Differenza tra eredità e portacontainer

Video: Differenza tra eredità e portacontainer

Video: Differenza tra eredità e portacontainer
Video: Base d'Asta e Offerta Minima, qual è la differenza? L'Avvocato Risponde 2024, Luglio
Anonim

Eredità vs Portacontainer

Ereditarietà e Containership sono due concetti importanti che si trovano in OOP (Esempio di programmazione orientata agli oggetti: C++). In termini semplici, sia Containership che Inheritance si occupano di fornire proprietà o comportamenti aggiuntivi a una classe. L'ereditarietà è la capacità di una classe di ereditare proprietà e comportamento da una classe genitore estendendola. D' altra parte, Containership è la capacità di una classe di contenere oggetti di classi diverse come dati dei membri.

Cos'è l'eredità?

Come accennato in precedenza, l'ereditarietà è la capacità di una classe di ereditare proprietà e comportamento da una classe genitore estendendola. L'ereditarietà fornisce essenzialmente il riutilizzo del codice consentendo l'estensione delle proprietà e del comportamento di una classe esistente da parte di una classe appena definita. Se la classe A estende B, allora la classe B è chiamata classe genitore (o superclasse) e la classe A è chiamata classe figlia (o classe derivata/sottoclasse). In questo scenario di esempio, la classe A erediterà tutti gli attributi ei metodi pubblici e protetti della superclasse (B). La sottoclasse può opzionalmente sovrascrivere (fornire funzionalità nuove o estese ai metodi) il comportamento ereditato dalla classe padre. L'ereditarietà rappresenta una relazione "è-a" in OOP. Ciò significa essenzialmente che A è anche una B. In altre parole, B può essere la classe con una descrizione generale di una certa entità del mondo reale ma A specifica una certa specializzazione. In un problema di programmazione del mondo reale, la classe Person potrebbe essere estesa per creare la classe Employee. Questa si chiama specializzazione. Ma potresti anche prima creare la classe Employee e poi generalizzarla anche a una classe Person (es.e. generalizzazione). In questo esempio, il Dipendente avrà tutte le proprietà e il comportamento della Persona (cioè il Dipendente è anche una Persona) e può contenere anche alcune funzionalità aggiuntive (quindi, la Persona non è un Dipendente).

Cos'è la nave portacontainer?

Il container è la capacità di una classe di contenere oggetti di classi diverse come dati dei membri. Ad esempio, la classe A potrebbe contenere un oggetto di classe B come membro. Qui, tutti i metodi (o funzioni) pubblici definiti in B possono essere eseguiti all'interno della classe A. La classe A diventa il contenitore, mentre la classe B diventa la classe contenuta. La nave portacontainer viene anche chiamata Composizione. In questo esempio, si può dire che la classe A è composta dalla classe B. In OOP, Containership rappresenta una relazione "ha-a". È importante notare che, anche se il contenitore ha accesso per eseguire tutti i metodi pubblici della classe contenuta, non è in grado di modificare o fornire funzionalità aggiuntive. Quando si tratta di un problema di programmazione nel mondo reale, un oggetto della classe TextBox può essere contenuto nella classe Form, e quindi si può dire che un Form contiene un TextBox (o in alternativa, un Form è composto da un TextBox).

Differenza tra eredità e portacontainer

Sebbene Ereditarietà e Portacontainer siano due concetti OOP, sono abbastanza diversi in ciò che consentono al programmatore di ottenere. L'ereditarietà è la capacità di una classe di ereditare proprietà e comportamento da una classe padre estendendola, mentre Containership è la capacità di una classe di contenere oggetti di classi diverse come dati dei membri. Se una classe viene estesa, eredita tutte le proprietà/comportamenti pubblici e protetti e tali comportamenti possono essere sovrascritti dalla sottoclasse. Ma se una classe è contenuta in un' altra, il contenitore non ottiene la possibilità di modificare o aggiungere comportamenti al contenuto. L'ereditarietà rappresenta una relazione "è-a" in OOP, mentre Containership rappresenta una relazione "ha-a".

Consigliato: