Heim  >  Artikel  >  Java  >  Java-Schnittstellen und abstrakte Klassen: Der Weg zur Wiederverwendung von Code

Java-Schnittstellen und abstrakte Klassen: Der Weg zur Wiederverwendung von Code

PHPz
PHPznach vorne
2024-03-27 19:31:281111Durchsuche

Java 接口与抽象类:实现代码复用之道

„Java-Schnittstellen und abstrakte Klassen: So implementieren Sie die Wiederverwendung von Code“ ist ein Artikel, der sorgfältig vom PHP-Editor Xiaoxin verfasst wurde. Aus der Perspektive der Java-Programmierung wird in diesem Artikel ausführlich auf die Bedeutung und Anwendung von Schnittstellen und abstrakten Klassen bei der Wiederverwendung von Code eingegangen. Durch die Analyse und den Vergleich von Beispielcodes hilft es den Lesern, besser zu verstehen, wie Schnittstellen und abstrakte Klassen verwendet werden, um die Wiederverwendung von Code zu erreichen und die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern. Dieser Artikel ist ein seltenes Lernmaterial für Leser, die die Java-Programmierung systematisch erlernen möchten.

  • Interface enthält nur abstrakte Methoden und keine konkrete Implementierung.
  • Alle Methoden in einer Schnittstelle werden implizit als öffentlich und abstrakt deklariert.
  • Eine Klasse kann mehrere Schnittstellen implementieren.
  • Schnittstellen werden hauptsächlich verwendet, um Verträge zu definieren und die Verhaltensweisen anzugeben, die Klassen implementieren müssen.
  • Die Methoden in der Schnittstelle sind nicht implementiert und können daher nicht direkt verwendet werden. Sie müssen von der Klasse implementiert werden, die sie implementiert.

Abstrakter Kurs

  • Abstrakte Klassen können abstrakte Methoden und konkrete Methoden enthalten.
  • Abstrakte Methoden in abstrakten Klassen müssen durch Unterklassen implementiert werden.
  • Konkrete Methoden in abstrakten Klassen stellen Standardimplementierungen bereit.
  • Eine Klasse kann nur eine abstrakte Klasse erben.
  • Abstrakte Klassen werden häufig verwendet, um allgemeines Verhalten zu definieren und eine teilweise Implementierung bereitzustellen.
  • Konkrete Methoden abstrakter Klassen können von Unterklassen überschrieben werden, während abstrakte Methoden implementiert werden müssen.

Wählen Sie eine Schnittstelle oder eine abstrakte Klasse

Die Auswahl einer Schnittstelle oder einer abstrakten Klasse hängt vom jeweiligen Szenario ab:

  • Wenn Sie einen Vertrag definieren müssen und keine spezifische Implementierung benötigen, wählen Sie eine Schnittstelle.
  • Wenn Sie allgemeines Verhalten definieren und eine teilweise Implementierung bereitstellen müssen, wählen Sie eine abstrakte Klasse.
  • Wenn Sie eine Klasse benötigen, die Mehrfachvererbung unterstützt, wählen Sie eine Schnittstelle.
  • Wenn Sie eine Klasse mit einer strengeren Vererbungshierarchie benötigen, wählen Sie abstrakte Klassen.

Code-Wiederverwendung

Durch Schnittstellen und abstrakte Klassen können wir die Wiederverwendung von Code erreichen, Redundanz reduzieren und die Flexibilität verbessern:

  • Schnittstellen ermöglichen verschiedenen Klassen die Implementierung desselben Vertrags und fördern so die Wiederverwendung und Steckbarkeit von Code.
  • Abstrakte Klassen bieten eine teilweise Implementierung, und Unterklassen können diese Implementierung erweitern und bestimmte Verhaltensweisen anpassen, um zu vermeiden, dass derselbe Code wiederholt geschrieben wird.

Polymorphismus

Schnittstellen und abstrakte Klassen erleichtern auch Polymorphismus, die Fähigkeit, verschiedene Arten von Objekten auf einheitliche Weise zu verarbeiten:

  • Der von einer Schnittstelle definierte Typ ist der gemeinsame übergeordnete Typ aller Klassen, die die Schnittstelle implementieren.
  • Der von einer abstrakten Klasse definierte Typ ist der gemeinsame übergeordnete Typ aller Unterklassen.
  • Dadurch können Objekte polymorph behandelt werden, ohne sich Gedanken über ihren konkreten Typ machen zu müssen.

Beispiel

Schnittstellenbeispiel:

public interface Shape {
double getArea();
double getPerimeter();
}

Abstraktes Klassenbeispiel:

public abstract class Animal {
protected String name;

public abstract void speak();

public void eat() {
System.out.println("Animal is eating.");
}
}

Beispiel für die Wiederverwendung von Code:

ClassCircleSquare通过实现Shape接口实现了getArea()getPerimeter()Methode, die den Code zur Berechnung der Fläche und des Umfangs einer Form wiederverwendet.

public class Circle implements Shape {
private double radius;

@Override
public double getArea() {
return Math.PI * radius * radius;
}

@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
}

public class Square implements Shape {
private double side;

@Override
public double getArea() {
return side * side;
}

@Override
public double getPerimeter() {
return 4 * side;
}
}

Beispiel für Polymorphismus:

Wir können Shape类型的变量来存储CircleSquareObjekte verwenden und ihre Methoden auf polymorphe Weise aufrufen.

Shape shape1 = new Circle(5);
Shape shape2 = new Square(10);

System.out.println(shape1.getArea()); // 78.53981633974483
System.out.println(shape2.getPerimeter()); // 40.0

Durch die Nutzung von Schnittstellen und abstrakten Klassen können Java-Programmierer die Wiederverwendung und Polymorphie von Code erreichen und so flexibleren und wartbareren Code schreiben.

Das obige ist der detaillierte Inhalt vonJava-Schnittstellen und abstrakte Klassen: Der Weg zur Wiederverwendung von Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen