Differenza tra Extends e Implements in Java con esempi

Dopo l’articolo di Java Autoboxing e Unboxing in Java, impareremo la differenza tra extends e implements in Java. Entrambi sono le parole chiave riservate in Java che usiamo per ereditare le caratteristiche di un blocco genitore già esistente nel blocco figlio appena creato. Sono usati per implementare diversi concetti in Java. Impareremo cos’è la parola chiave Java extends e cos’è la parola chiave Java implements con esempi.

Prima di tutto, rivediamo il concetto di Java Autoboxing e Unboxing in dettaglio con Techvidvan.

Mantenendoti aggiornato sulle ultime tendenze tecnologiche, unisciti a TechVidvan su Telegram

Che cos’è extends in Java?

  • La parola chiave extends in Java è utile quando vogliamo ereditare le proprietà e i metodi di una classe padre nella nostra classe figlia.
  • Questa parola chiave extends stabilisce la relazione di eredità tra due classi.
  • Lo usiamo quando creiamo una classe derivata dalla classe padre o quando creiamo una sottoclasse dalla superclasse.
  • La regola è che una classe può estendere al massimo una sola classe.
  • Quando una classe estende un’altra classe, può sovrascrivere i metodi definiti in una superclasse.
  • Utilizziamo anche la parola chiave extends quando vogliamo che un’interfaccia estenda o erediti un’altra interfaccia.

Conosci il concetto di Ereditarietà Java in dettaglio con Techvidvan.

Codice per capire la parola chiave extends in Java:

package com.techvidvan.extendsvsimplements;//Parent classclass Country{ String name = "India"; public void display() { System.out.println("This is my country India"); }}//child class extends the parent classclass City extends Country{ // defining additional properties to the derived class String state = "Rajasthan"; String city = "Jaipur";}public class ExtendsDemo{ public static void main(String args) { City obj=new City(); obj.display(); System.out.println("Name of the city is: " + obj.name); System.out.println("City is present in " + obj.state + "state"); }}

Output:

Questo è il mio paese India
Nome della città è: Jaipur
La città è presente nello stato di Rajasthan

Che cos’è Implements in Java?

  • Utilizziamo la parola chiave implements mentre implementiamo un’interfaccia.
  • Una classe può implementare un’interfaccia usando la parola chiave implements.
  • Un’interfaccia è un tipo astratto in Java che contiene una collezione di metodi astratti. Non possiamo istanziare un’interfaccia, cioè non possiamo creare oggetti da un’interfaccia.
  • Quando una classe implementa un’interfaccia, deve definire tutti i metodi che sono presenti all’interno dell’interfaccia fornendo l’implementazione di ciascuno dei metodi.
  • Se la classe che implementa un’interfaccia, non definisce o non contiene l’implementazione di tutti i metodi dell’interfaccia, allora dobbiamo dichiararla come astratta. Altrimenti, il compilatore darà un errore.
  • Java non supporta le eredità multiple, ma possiamo implementare l’eredità multipla nel nostro codice usando interfacce multiple in Java.
  • Un’interfaccia non può mai implementare un’altra interfaccia. La ragione è che se l’interfaccia implementerà un’altra interfaccia allora deve definire tutti i metodi dell’interfaccia che sta implementando ma l’interfaccia non può avere alcun metodo concreto, quindi, un’interfaccia non può implementare un’altra interfaccia in Java.

Aumenta la tua conoscenza su Java Interface in dettaglio con Techvidvan.

Codice per capire l’implementazione di java implements parola chiave:

package com.techvidvan.extendsvsimplements;//Creating an interfaceinterface MyInterface{ //Declaring abstract methods inside it void displayString(String s); void showNumber(int i);}//Implementing the interface using the implements keywordpublic class MyClass implements MyInterface{ //Implementing all the methods declared in the interface public void displayString(String s) { System.out.println("The string value is: " +s); } public void showNumber(int i) { System.out.println("The integer value is: " +i); } public static void main(String args) { MyClass obj = new MyClass(); obj.displayString("TechVidvan"); obj.showNumber(20); }}

Output:

Il valore della stringa è: TechVidvan
Il valore intero è: 20

Esempio di interfacce multiple

Ora vedremo un esempio in cui una classe implementa più di un’interfaccia allo stesso tempo e quindi stabilisce eredità multiple in Java. Creeremo 3 interfacce: Walkable, Swimmable e Talkable e una classe HumanBeing che implementa tutte e 3 le interfacce.

1. interfaccia: Walkable.java

package com.techvidvan.extendsvsimplements;public interface Walkable { public void walk();}

2. interfaccia: Swimmable.java

package com.techvidvan.extendsvsimplements;public interface Swimmable{ public void swim();}

3. interfaccia: Talkable.java

package com.techvidvan.extendsvsimplements;public interface Talkable { public void talk();}

4. Classe: Essere Umano.java

package com.techvidvan.extendsvsimplements;\To implement multiple interfaces we must use commas to separate thempublic class HumanBeing implements Walkable, Swimmable, Talkable{ @Override public void walk() { System.out.println("I can walk"); } @Override public void swim() { System.out.println("I can swim"); } @Override public void talk() { System.out.println("I can talk"); } public static void main(String args) { HumanBeing human= new HumanBeing(); human.walk(); human.swim(); human.talk(); }}

Output:

Posso camminare
Posso nuotare
Posso parlare

Differenza tra Extends e Implements in Java

Abbiamo visto gli esempi di entrambe le parole chiave, vediamo ora java extends vs implements in dettaglio:

Caratteristiche del confronto Extends Implements
Implementazione La parola chiave extends viene usata quando una classe vuole ereditare tutte le proprietà da un’altra classe o un’interfaccia che vuole ereditare un’interfaccia. Utilizziamo la parola chiave implements quando vogliamo che una classe implementi un’interfaccia.
Associato a È associato a Inheritance È associato a Abstraction
Method La classe figlia che estende una classe madre può sovrascrivere o meno tutti i metodi presenti nella classe madre. La classe che implementa un’interfaccia deve definire o fornire l’implementazione di tutti i metodi dichiarati nell’interfaccia, altrimenti la classe deve essere dichiarata come astratta.
Classe Una sottoclasse o più di una sottoclasse possono estendere solo una classe padre allo stesso tempo. Una classe può implementare una o più di un’interfaccia allo stesso tempo.
Interfaccia Un’interfaccia può estendere qualsiasi numero di interfacce. Un’interfaccia non può mai implementare un’altra interfaccia.

Summary

Così in conclusione, siamo giunti alla fine dell’articolo sulla differenza tra estensioni e implementazioni in java. Abbiamo esaminato le principali differenze tra queste parole chiave. Entrambi usano direttamente o indirettamente il concetto di ereditarietà in Java. Ma, possiamo concludere che l’implementazione di un’interfaccia fornisce più flessibilità rispetto all’estensione di una classe in quanto possiamo estendere una singola classe ma possiamo implementare più eredità in Java. Spero che, dopo aver letto questo articolo, abbiate finalmente capito la parola chiave extends vs implements in Java.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.