implementiert Schlüsselwort in Java
Das Schlüsselwort implements
wird in Java verwendet, um anzuzeigen, dass eine Klasse eine Schnittstelle implementieren wird. Durch die Verwendung von implements
verpflichtet sich eine Klasse, konkrete Implementierungen für alle abstrakten Methoden bereitzustellen, die in der Schnittstelle deklariert sind.
Verwendung
Das Schlüsselwort implements
wird in einer Klassendeklaration verwendet, um eine oder mehrere Schnittstellen anzugeben, die die Klasse implementieren wird.
Syntax
class ClassName implements InterfaceName {
// Class body with implementations of interface methods
}
ClassName
: Der Name der Klasse, die die Schnittstelle implementiert.InterfaceName
: Der Name der Schnittstelle, die implementiert wird. Mehrere Schnittstellen können implementiert werden, indem du sie mit Kommas trennst.
Beispiele
Beispiel 1: Implementierung einer einzigen Schnittstelle
interface Animal {
void makeSound();
}
public class Dog implements Animal {
public void makeSound() {
System.out.println("Bark");
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound(); // Outputs: Bark
}
}
In diesem Beispiel implementiert die Klasse Dog
die Schnittstelle Animal
. Die Methode makeSound
ist in der Klasse Dog
definiert, um das spezifische Verhalten eines Hundes zu ermöglichen.
Beispiel 2: Implementierung mehrerer Schnittstellen
interface Animal {
void makeSound();
}
interface Pet {
void play();
}
public class Cat implements Animal, Pet {
public void makeSound() {
System.out.println("Meow");
}
public void play() {
System.out.println("Playing with a ball of yarn");
}
public static void main(String[] args) {
Cat cat = new Cat();
cat.makeSound(); // Outputs: Meow
cat.play(); // Outputs: Playing with a ball of yarn
}
}
Hier implementiert die Klasse Cat
zwei Schnittstellen, Animal
und Pet
. Sie bietet konkrete Implementierungen für die Methoden makeSound
und play
.
Beispiel 3: Schnittstelle mit Standardmethoden implementieren
interface Vehicle {
void start();
default void stop() {
System.out.println("Vehicle stopped");
}
}
public class Car implements Vehicle {
public void start() {
System.out.println("Car started");
}
public static void main(String[] args) {
Car car = new Car();
car.start(); // Outputs: Car started
car.stop(); // Outputs: Vehicle stopped
}
}
In diesem Beispiel hat die Schnittstelle Vehicle
eine Standardmethode stop
. Die Klasse Car
implementiert die Schnittstelle Vehicle
und bietet eine Implementierung für die Methode start
. Die Standardmethode stop
wird von der Klasse Car
geerbt.
Tipps und bewährte Praktiken
- Schnittstellentrennung: Implementiere Schnittstellen, die für die Funktionalität der Klasse spezifisch sind. Damit wird das Prinzip der Schnittstellentrennung (Interface Segregation Principle, ISP) eingehalten, wodurch der Code modularer und leichter zu warten ist.
- Mehrfache Vererbung: Verwende Schnittstellen, um Mehrfachvererbung in Java zu erreichen. Eine Klasse kann mehrere Schnittstellen implementieren, sodass sie Verhalten aus verschiedenen Quellen erben kann.
- Standardmethoden: Nutze Standardmethoden in Schnittstellen, um gemeinsame Funktionen bereitzustellen, ohne alle implementierenden Klassen zu zwingen, sie zu überschreiben.
- Dokumentation: Dokumentiere den Zweck jeder Schnittstelle und die Methoden, die sie deklariert. Das hilft anderen Entwicklern, den Vertrag zu verstehen, den die implementierenden Klassen erfüllen müssen.
- Konsistenz: Achte auf einheitliche Namenskonventionen und Methodensignaturen für Schnittstellen und ihre Implementierungen, um Klarheit und Wartbarkeit zu gewährleisten.
interface Drivable {
void drive();
}
interface Fillable {
void fillFuel();
}
public class Truck implements Drivable, Fillable {
public void drive() {
System.out.println("Truck is driving");
}
public void fillFuel() {
System.out.println("Filling truck with fuel");
}
}