Erweitert vs. Implementiert in Java

Rupam Yadav 12 Oktober 2023
  1. Vererben Sie eine Klasse mit dem Schlüsselwort extends in Java
  2. Vererben Sie eine Schnittstelle mit dem Schlüsselwort implements in Java
Erweitert vs. Implementiert in Java

Um die Eigenschaften und Verhaltensweisen einer bestimmten Elternklasse in Java wiederzuverwenden, verwenden wir das Konzept der Vererbung, das ein wichtiger Bestandteil einer objektorientierten Programmiersprache ist. Die Idee dahinter ist die Wiederverwendbarkeit von Code. Sowohl die Schlüsselwörter implements als auch extends werden verwendet, um eine neue Klasse in Java zu erstellen, die die Attribute der Elternklasse besitzt.

Anhand der unten stehenden Tabelle können wir die Keywords extends und implements besser verstehen.

Definition Implementierung Klasse Schnittstelle Methoden
extends Wenn eine Unterklasse (Kind) eine Basisklasse (Elternklasse) erweitert, ermöglicht dies der Unterklasse, den in der Basisklasse definierten Code zu erben. Eine Klasse kann eine andere Klasse erben. Eine Schnittstelle kann mit dem Schlüsselwort extends eine andere Schnittstelle erben. Eine Klasse kann nur eine Klasse erweitern. Beliebig viele Schnittstellen können um eine Schnittstelle erweitert werden. Die Unterklassenklasse erweitert eine Elternklasse, kann alle Methoden in der Basisklasse überschreiben oder nicht.
implements Das Schlüsselwort implements wird verwendet, um eine Schnittstelle zu implementieren. Eine Schnittstelle enthält abstrakte Methoden. Der Methodenrumpf wird in der Klasse definiert, die ihn implementiert. Mit dem Schlüsselwort implements kann eine Klasse ein Interface implementieren. Eine Klasse kann mehr als eine Schnittstelle implementieren. Eine Schnittstelle kann niemals eine andere Schnittstelle implementieren. Die Klasse, die eine Schnittstelle implementiert, muss alle Methoden der Schnittstelle implementieren.

Vererben Sie eine Klasse mit dem Schlüsselwort extends in Java

Im folgenden Code haben wir ein Parent, das die Basisklasse ist, und Child als Unterklasse. Die Klasse Child erweitert die Klasse Parent, dh die Klasse Child hat nun Zugriff auf die Felder und Methoden, die in der Klasse Parent definiert sind.

In unserer Klasse Test erstellen wir ein Objekt der Unterklasse child und rufen darauf die Methode displayNumber() auf. Die Methode displayString(), die innerhalb der Elternklasse definiert ist, kann ausgeführt werden, indem sie auf demselben Kind-Objekt aufgerufen wird. Somit erfüllt es den Zweck der Wiederverwendbarkeit des Codes.

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;
  }
}

Ausgabe:

Calling Child class method : 25
Calling Parent class method from child : Hello there!

Vererben Sie eine Schnittstelle mit dem Schlüsselwort implements in Java

Im folgenden Code haben wir zwei Schnittstellen, Cat und Dog, die jeweils eine abstrakte Methode enthalten. Eine Klasse Animals implementiert beide Interfaces, muss also die in den Interfaces definierte Methode implementieren.

Daher implementierte die Klasse Animals beide Schnittstellen und definierte ihr Verhalten, was der ganze Zweck der Schnittstelle in Java ist.

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();
  }
}

Ausgabe

Dog barks
Cat meows
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