Classe astratta in Java – Con esempi

Pubblicato: 2022-06-24

L'astrazione dei dati è la tecnica per nascondere determinate informazioni e mostrare agli utenti solo i dettagli richiesti. Questa astrazione dei dati può essere ottenuta in due modi, classe astratta e interfacce.

Sommario

Che cos'è una classe astratta in Java?

Una classe astratta in Java è una classe ristretta racchiusa o dichiarata con la parola chiave abstract. Una classe astratta può avere metodi sia astratti che non astratti. Non può essere utilizzato per creare un oggetto. Per accedere a una classe astratta, deve essere ereditata da un'altra classe.

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Regole di classe astratta

  • Una classe astratta può essere dichiarata solo all'interno di una parola chiave astratta.
  • Può contenere metodi sia astratti che non astratti.
  • Può anche avere metodi finali.
  • Non può mai essere istanziato.
  • Possono essere utilizzati anche costruttori e metodi statici.

Esempio di una classe astratta:

classe astratta B{}

Un metodo astratto in Java

Questo metodo può essere utilizzato solo in una classe astratta e non contiene un corpo. Il corpo sarà fornito dalla sottoclasse ereditata.

Un esempio di metodo astratto è:

abstract void printStatus(); //nessun corpo del metodo e abstract

Esempio di classe Java Abstract con un metodo Abstract

Nell'esempio seguente, l'auto è una classe astratta con un metodo astratto, run. L'implementazione è fornita dalla classe Audi.

classe astratta Auto{

abstract void run();

}

classe Audi4 estende Bike{

void run(){System.out.println("in esecuzione bene");}

public static void main(String args[]){

Car obj = nuova Audi4();

obj.run();

}

}

L'output del programma sarà "in esecuzione bene".

Nella maggior parte dei casi, la classe di implementazione rimane sconosciuta (astrazione dei dati) e un oggetto della classe di implementazione viene ottenuto tramite il metodo factory.

Un metodo che restituisce l'istanza della classe è chiamato metodo factory.

Esempio di Java Abstract Class con il metodo Factory

Nell'esempio seguente, creando l'istanza di una classe square, viene avviato il metodo draw() della classe Square.

classe astratta Forma{

disegno vuoto astratto();

}

//Nello scenario reale, l'implementazione è fornita da altri, cioè sconosciuta dall'utente finale

classe Il quadrato estende la forma{

void draw(){System.out.println("disegno quadrato");}

}

la classe Circle1 estende Shape{

void draw(){System.out.println("disegno esagonale");}

}

//Nello scenario reale, il metodo viene chiamato dal programmatore o dall'utente

classe TestAstrazione1{

public static void main(String args[]){

Shape s=new Circle1();//In uno scenario reale, l'oggetto viene fornito tramite il metodo, ad esempio il metodo getShape()

s.disegna();

}

}

L'output del programma di cui sopra sarà "disegno esagonale".

Corsi e articoli popolari sull'ingegneria del software

Programmi popolari
Programma Executive PG in Software Development - IIIT B Programma di certificazione Blockchain - PURDUE Programma di certificazione di sicurezza informatica - PURDUE MSC in Informatica - IIIT B
Altri articoli popolari
Stipendio per ingegnere cloud negli Stati Uniti 2021-22 Stipendio di AWS Solution Architect negli Stati Uniti Stipendio per sviluppatori back-end negli Stati Uniti Stipendio per sviluppatori front-end negli Stati Uniti
Stipendio sviluppatore Web negli Stati Uniti Domande per il colloquio con lo Scrum Master nel 2022 Come iniziare una carriera nella sicurezza informatica nel 2022? Opzioni di carriera negli Stati Uniti per gli studenti di ingegneria

Quando dovrebbe essere utilizzata una classe astratta in Java?

Di seguito sono riportati alcuni scenari in cui è possibile utilizzare una classe astratta:

  • Quando si tenta di introdurre il concetto di ereditarietà nel codice (per condividere il codice tra varie classi rilevanti) utilizzando metodi comuni di una classe base.
  • Quando i requisiti sono specifici e i dettagli di attuazione sono incompleti.
  • Quando le classi utilizzate per estendere una classe astratta hanno più campi o metodi comuni che richiedono modificatori non pubblici.
  • Quando vengono utilizzati metodi non finali o non statici per modificare lo stato dell'oggetto.

Quando utilizzare un'interfaccia in Java per l'astrazione?

I seguenti scenari richiedono un'interfaccia Java per ottenere l'astrazione:

  • Per supportare le funzionalità di eredità multiple
  • Per ottenere un accoppiamento libero

Dichiarazione di un'interfaccia

L'interfaccia deve essere dichiarata solo tramite la parola chiave dell'interfaccia. Ciò si traduce in un'astrazione totale in modo che tutti i metodi di ereditarietà siano dichiarati in un corpo vuoto e tutti i campi diventino pubblici, statici e finali come predefiniti. La classe che implementa l'interfaccia dovrebbe implementare tutti i metodi dichiarati nell'interfaccia.

Esempio di interfaccia Java

Nell'esempio seguente, l'interfaccia stampabile ha un solo metodo la cui implementazione è fornita nella classe A6.

interfaccia stampabile{

void print();

}

la classe A6 implementa stampabile{

public void print(){System.out.println("Benvenuto");}

public static void main(String args[]){

A6 obj = nuovo A6();

obj.print();

}

}

L'output del programma sarà

Ben arrivato.

Esempio 2:

interfaccia Banca{

float rateOfInterest();

}

la classe BOI implementa Bank{

public float rateOfInterest(){return 8.5f;}

}

classe CUB implementa Bank{

public float rateOfInterest(){return 9.2f;}

}

classe TestInterface2{

public static void main(String[] args){

Banca b=nuovo IVO();

System.out.println(“ROI: “+b.rateOfInterest());

}}

L'output del programma di cui sopra sarà

ROI: 8.5

Vantaggi dell'astrazione in Java

  • Accoppiamento sciolto: l'astrazione in Java aiuta nell'accoppiamento sciolto mitigando le entità dipendenti a livello esponenziale.
  • Codici riutilizzabili: la classe astratta in Java è un ottimo risparmio di tempo. Il metodo astratto può essere chiamato solo quando necessario. La classe astratta evita di riscrivere gli stessi codici, risparmiando così tempo.
  • Protezione dei dati: l'astrazione dei dati in Java aiuta a nascondere i dettagli del codice sensibile agli utenti. Aiuta a nascondere le caratteristiche importanti del progetto e a visualizzare solo i componenti essenziali.
  • Risoluzione più rapida dei problemi: con l'aiuto della risoluzione dinamica del metodo, vari problemi e complicazioni possono essere risolti utilizzando un solo metodo astratto.

Per saperne di più sull'astrazione dei dati in Java e sullo sviluppo software, iscriviti all'Executive Post Graduate Program in Software Development offerto da IIIT Bangalore in associazione con upGrad.

Il programma Executive Post-laurea in Sviluppo software è un programma online di 13 mesi. Il curriculum è appositamente progettato per i professionisti che lavorano per concentrarsi sull'apprendimento senza rinunciare al proprio lavoro. Il curriculum comprende progetti di settore e casi di studio. Inoltre, il programma prevede oltre 10 sessioni dal vivo degli esperti del settore per aiutare i candidati a rimanere aggiornati sulle tendenze attuali del settore.

Possiamo avere una classe astratta senza alcun metodo astratto?

Sì. È possibile avere una classe astratta senza alcun metodo astratto poiché sono entrambe tecniche indipendenti. Dichiarare una classe astratta implica che non può essere istanziata da sola e può essere eseguita solo con l'aiuto di una sottoclasse. Definire un metodo astratto significa che il metodo è definito o contenuto nella sottoclasse.

Perché l'astrazione dei dati è essenziale?

Sì. È possibile avere una classe astratta senza alcun metodo astratto poiché sono entrambe tecniche indipendenti. Dichiarare una classe astratta implica che non può essere istanziata da sola e può essere eseguita solo con l'aiuto di una sottoclasse. Definire un metodo astratto significa che il metodo è definito o contenuto nella sottoclasse.

In che modo l'astrazione dei dati è diversa dall'astrazione del controllo?

L'astrazione dei dati è il processo di creazione di tipi di dati complessi e complicati ma che evidenzia o rivela solo dettagli essenziali. L'astrazione del controllo è il processo che si occupa della parte software dell'astrazione. È il processo in cui il programma viene suddiviso o semplificato e vengono nascosti i dettagli indesiderati delle esecuzioni del programma. L'astrazione del controllo viene utilizzata principalmente per generare nuove funzionalità e fondere varie istruzioni di controllo in un'unica entità.