Die Rolle von Schnittstellen und abstrakten Klassen: Schnittstellen: Definieren Sie notwendige Verhaltensweisen und erzwingen Sie die Einhaltung spezifischer Spezifikationen durch Implementierungsklassen. Abstrakte Klasse: Definiert allgemeines Verhalten, erzwingt die Vererbung durch Unterklassen, stellt eine teilweise Implementierung bereit und ermöglicht Unterklassen die Anpassung spezifischer Verhaltensweisen. Designprinzipien: Schnittstelle: Halten Sie sie klein und fokussiert und definieren Sie das erforderliche Verhalten. Abstrakte Klasse: Deklariert nur abstrakte Methoden und stellt konkrete Methoden bereit, um ein gemeinsames Verhalten zu erreichen. Beispiel: In der Formklassenhierarchie definiert die Shape-Schnittstelle das Verhalten beim Erhalten der Fläche, die abstrakte Klasse AbstractShape stellt die Felder Breite und Höhe bereit und die Klassen Rechteck und Kreis erben die abstrakte Klasse und stellen die Flächenberechnungsmethode für eine bestimmte Form bereit .
Die Rolle und Designprinzipien von Schnittstellen und abstrakten Klassen in Java
Schnittstellen
public interface InterfaceName { ...
public interface InterfaceName { ... }
抽象类
public abstract class AbstractClassName { ... }
作用
接口
抽象类
设计原则
接口
抽象类
实战案例
考虑一个简单的形状类层次结构:
**`
public abstract class AbstractClassName { ...
Function
Interface
🎜🎜🎜 erreicht eine Entkopplung, sodass sich Klassen auf ihre eigenen Verantwortlichkeiten konzentrieren können. 🎜🎜Fördert Modularität und Erweiterbarkeit, sodass Komponenten einfach ausgetauscht und erweitert werden können. 🎜🎜Definieren Sie Verhaltensverträge, um Implementierungsklassen zur Einhaltung bestimmter Spezifikationen zu zwingen. 🎜🎜🎜Abstrakte Klassen🎜🎜🎜🎜definieren allgemeines Verhalten und zwingen Unterklassen, es zu erben. 🎜🎜Stellen Sie eine Teilimplementierung bereit, um doppelten Code in Unterklassen zu reduzieren. 🎜🎜Stellen Sie Hook-Methoden bereit, damit Unterklassen bestimmte Verhaltensweisen anpassen können. 🎜🎜🎜Designprinzipien🎜🎜🎜🎜Schnittstellen🎜🎜🎜🎜Definieren Sie nur notwendige Verhaltensweisen. 🎜🎜Methodennamen sollten klar und prägnant sein und das erwartete Verhalten angeben. 🎜🎜Schnittstellen sollten klein und fokussiert gehalten werden. 🎜🎜🎜Abstrakte Klasse🎜🎜🎜🎜Deklariert nur abstrakte Methoden und definiert öffentliches Verhalten. 🎜🎜Stellen Sie konkrete Methoden zur Umsetzung allgemeiner Verhaltensweisen bereit. 🎜🎜Erwägen Sie die Verwendung abstrakter Klassen anstelle von Schnittstellen, wenn eine gemeinsame Implementierung erforderlich ist. 🎜🎜🎜Praktischer Fall🎜🎜🎜Betrachten Sie eine einfache Shape-Klassenhierarchie: 🎜🎜**`
java🎜interface Shape {🎜double getArea();
protected double width; protected double height; public AbstractShape(double width, double height) { this.width = width; this.height = height; } public double getWidth() { return width; } public double getHeight() { return height; }
public Rectangle(double width, double height) { super(width, height); } @Override public double getArea() { return width * height; }
public Circle(double radius) { super(radius, radius); } @Override public double getArea() { return Math.PI * width * width; }
public static void main(String[] args) { Shape rectangle = new Rectangle(4, 5); Shape circle = new Circle(3); System.out.println("Rectangle area: " + rectangle.getArea()); System.out.println("Circle area: " + circle.getArea()); }
在这个例子中: * `Shape` 接口定义了一个通用行为:获取形状面积。 * `AbstractShape` 抽象类提供了通用行为的通用实现,例如宽度和高度字段。 * `Rectangle` 和 `Circle` 类通过继承 `AbstractShape` 类来扩展形状类层次结构,并提供特定形状的具体方法来计算面积。
Das obige ist der detaillierte Inhalt vonDie Rolle und Designprinzipien von Schnittstellen und abstrakten Klassen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!