Estende e implementa in Java
-
Eredita una classe usando la parola chiave
extends
in Java -
Eredita un’interfaccia usando la parola chiave
implementa\s
in Java
Per riutilizzare le proprietà e i comportamenti di una determinata classe genitore in Java, utilizziamo il concetto di ereditarietà che è una parte importante di un linguaggio di programmazione orientato agli oggetti. L’idea alla base di questo è la riutilizzabilità del codice. Sia le parole chiave implements
che extends
vengono utilizzate per creare una nuova classe in Java che abbia gli attributi della classe genitore.
Possiamo avere una migliore comprensione delle parole chiave extends
e implements
utilizzando la tabella riportata di seguito.
Definizione | Implementazione | Classe | Interfaccia | metodi | |
---|---|---|---|---|---|
extends |
Quando una sottoclasse (figlio) extends una classe base (genitore), consente alla sottoclasse di ereditare il codice definito nella classe base. |
Una classe può ereditare un’altra classe. Un’interfaccia può ereditare un’altra interfaccia utilizzando la parola chiave extends . |
Una classe può estendere solo una classe. | Qualsiasi numero di interfacce può essere esteso da un’interfaccia. | La classe della sottoclasse sta estendendo una classe genitore può o meno sovrascrivere tutti i metodi nella classe base. |
implements |
La parola chiave implementa viene utilizzata per implementare un’interfaccia. Un’interfaccia contiene metodi astratti. Il corpo del metodo è definito nella classe che lo implementa. |
Usando la parola chiave implements una classe può implementare un’interfaccia. |
Più di un’interfaccia può essere implementata da una classe. | Un’interfaccia non può mai implementare nessun’altra interfaccia. | La classe che implementa un’interfaccia deve implementare tutti i metodi nell’interfaccia. |
Eredita una classe usando la parola chiave extends
in Java
Nel codice seguente, abbiamo un Parent
, che è la classe base, e Child
come sottoclasse. La classe Child
estende la classe Parent
, il che significa che la classe Child
ha ora accesso ai campi e ai metodi definiti all’interno della classe Parent
.
Nella nostra classe Test
, creiamo un oggetto della classe della sottoclasse child
e chiamiamo su di esso il metodo displayNumber()
. Il metodo displayString()
, che è definito all’interno della classe genitore, può essere eseguito chiamandolo sullo stesso oggetto child
. Quindi, soddisfa lo scopo della riutilizzabilità del codice.
public class Test {
public static void main(String args[]) {
Child child = new Child();
System.out.println("Calling Child class method : " + child.displayNumber());
System.out.println("Calling Parent class method from child : " + child.displayString());
}
}
class Parent {
String str = "Hello there!";
public String displayString() {
return str;
}
}
class Child extends Parent {
int number = 25;
public int displayNumber() {
return number;
}
}
Produzione:
Calling Child class method : 25
Calling Parent class method from child : Hello there!
Eredita un’interfaccia usando la parola chiave implementa\s
in Java
Abbiamo due interfacce, Cat
e Dog
, nel codice sottostante, ognuna contenente un metodo astratto al suo interno. Una classe Animals
implementa entrambe le interfacce, quindi deve implementare il metodo definito nelle interfacce.
Quindi la classe Animals
ha implementato entrambe le interfacce e ha definito i loro comportamenti, che è l’intero scopo dell’interfaccia in Java.
interface Cat {
public void meow();
}
interface Dog {
public void bark();
}
class Animals implements Dog, Cat {
@Override
public void meow() {
System.out.println("Cat meows");
}
@Override
public void bark() {
System.out.println("Dog barks");
}
}
public class Test1 {
public static void main(String args[]) {
Animals animals = new Animals();
animals.bark();
animals.meow();
}
}
Produzione
Dog barks Cat meows
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn