Estende e implementa in Java

Rupam Yadav 12 ottobre 2023
  1. Eredita una classe usando la parola chiave extends in Java
  2. Eredita un’interfaccia usando la parola chiave implementa\s in Java
Estende e implementa 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
Autore: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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