Differenza tra classe astratta ed ereditarietà

Sommario:

Differenza tra classe astratta ed ereditarietà
Differenza tra classe astratta ed ereditarietà

Video: Differenza tra classe astratta ed ereditarietà

Video: Differenza tra classe astratta ed ereditarietà
Video: Differenza tra PROXY e VPN 2024, Novembre
Anonim

Classe astratta vs eredità

La classe astratta e l'ereditarietà sono due importanti concetti orientati agli oggetti che si trovano in molti linguaggi di programmazione orientati agli oggetti come Java. La classe astratta può essere considerata come una versione astratta di una classe normale (concreta), mentre l'ereditarietà consente a nuove classi di estendere altre classi. La classe astratta è una classe che non può essere inizializzata ma può essere estesa. Quindi, le classi astratte sono significative da avere solo se il linguaggio di programmazione supporta l'ereditarietà. In Java, le classi Abstract vengono dichiarate utilizzando la parola chiave Abstract, mentre la parola chiave Extends viene utilizzata per ereditare da una (super) classe.

Cos'è la classe astratta?

In genere, le classi astratte, note anche come classi di base astratte (ABC), non possono essere istanziate (non è possibile creare un'istanza di quella classe). Quindi, le classi astratte sono significative da avere solo se il linguaggio di programmazione supporta l'ereditarietà (capacità di creare sottoclassi dall'estensione di una classe). Le classi astratte di solito rappresentano un concetto o un'entità astratta con implementazione parziale o assente. Pertanto, le classi astratte fungono da classi madri da cui derivano le classi figlie in modo che la classe figlia condivida le caratteristiche incomplete della classe genitore e le funzionalità possano essere aggiunte per completarle.

Le classi astratte possono contenere metodi astratti. Le sottoclassi che estendono una classe astratta possono implementare questi metodi astratti (ereditati). Se la classe figlia implementa tutti questi metodi Abstract, è una classe concreta. Ma in caso contrario, anche la classe figlia diventa una classe astratta. Tutto ciò significa che, quando il programmatore nomina una classe come Abstract, sta dicendo che la classe sarà incompleta e avrà elementi che devono essere completati dalle sottoclassi ereditarie. Questo è un bel modo per creare un contratto tra due programmatori, che semplifica le attività nello sviluppo del software. Il programmatore, che scrive il codice da ereditare, deve seguire esattamente le definizioni del metodo (ma ovviamente può avere la propria implementazione).

Cos'è l'eredità?

L'ereditarietà è un concetto orientato agli oggetti, che consente alle nuove classi di estendere altre classi. La parola chiave Extends viene utilizzata per implementare il concetto di ereditarietà nel linguaggio di programmazione Java. 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. Quando una nuova sottoclasse (o classe derivata) estende una superclasse (o classe madre), quella sottoclasse erediterà tutti gli attributi e i metodi della superclasse. La sottoclasse può facoltativamente sovrascrivere il comportamento (fornire funzionalità nuove o estese ai metodi) ereditato dalla classe padre. In genere, una sottoclasse non può estendere più super classi (ad esempio in Java). Pertanto, non è possibile utilizzare le estensioni per l'ereditarietà multipla. Per avere un'ereditarietà multipla, devi usare le interfacce.

Qual è la differenza tra Classe astratta e Ereditarietà?

Le classi astratte di solito rappresentano un concetto astratto o un'entità con implementazione parziale o nulla. L'ereditarietà consente a nuove classi di estendere altre classi. Poiché le classi astratte non possono essere istanziate, è necessario utilizzare il concetto di ereditarietà per utilizzare le classi astratte. In caso contrario, una classe Abstract non ha alcuna utilità. Le classi astratte possono contenere metodi astratti e quando la classe viene estesa, tutti i metodi (astratti e concreti) vengono ereditati. La classe ereditata può implementare uno o tutti i metodi. Se tutti i metodi Abstract non sono implementati, anche quella classe diventa una classe Abstract. Una classe non può ereditare da più di una classe astratta (questa non è una qualità delle classi astratte di per sé, ma piuttosto una restrizione di ereditarietà).

Post correlati:

Image
Image
Image
Image

Differenza tra classe astratta e classe concreta

Image
Image
Image
Image

Differenza tra virtuale e astratto

Image
Image
Image
Image

Differenza tra classe astratta e interfaccia

Image
Image
Image
Image

Differenza tra attrezzi ed estensioni

Image
Image
Image
Image

Differenza tra grafico e albero

Archiviato in: Programmazione Tagged con: ABC, astratto, Classi di base astratte, Classe astratta, Classi astratte, Parola chiave astratta, Metodi astratti, Classe concreta, Parola chiave Estende, Ereditarietà, Classe di ereditarietà, Classe ereditata, Java, ereditarietà multipla, concetti orientati agli oggetti, classe normale, super classe

Immagine
Immagine

Informazioni sull'autore: Indika

Indika, BSc. Eng, MSECE Ingegneria Informatica, PhD. Informatica, è un assistente universitario e ha interessi di ricerca nei settori della bioinformatica, della biologia computazionale e dell'elaborazione biomedica del linguaggio naturale.

Commenti

  1. Immagine
    Immagine

    Jason dice

    30 agosto 2017 alle 13:25

    Grazie per aver spiegato la differenza. Tutte le mie domande sono state risolte in questo modo.

    Rispondi

  2. Immagine
    Immagine

    Aus dice

    10 maggio 2019 alle 15:04

    miglior risposta sul web, l'insegnante non spiega cazzate e non ha senso, mf mono tono. Ecco come spieghi i concetti.

    Rispondi

Lascia un commento Annulla risposta

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati

Commento

Nome

E-mail

Sito web

Richiedi l'art
Richiedi l'art
Richiedi l'art
Richiedi l'art

Post in primo piano

Differenza tra coronavirus e sintomi del raffreddore
Differenza tra coronavirus e sintomi del raffreddore

Differenza tra coronavirus e sintomi del raffreddore

Differenza tra coronavirus e SARS
Differenza tra coronavirus e SARS

Differenza tra Coronavirus e SARS

Differenza tra coronavirus e influenza
Differenza tra coronavirus e influenza

Differenza tra coronavirus e influenza

Differenza tra Coronavirus e Covid 19
Differenza tra Coronavirus e Covid 19

Differenza tra Coronavirus e Covid 19

Ti potrebbe piacere

Differenza tra Siberian Husky e Malamute

Differenza tra calcolo AB e BC

Consigliato: