インターフェイスと抽象クラスの役割: インターフェイス: 必要な動作を定義し、実装クラスが特定の仕様に準拠するように強制します。抽象クラス: 共通の動作を定義し、サブクラスにそれを強制的に継承させ、部分的な実装を提供し、サブクラスが特定の動作をカスタマイズできるようにします。設計原則: インターフェイス: 必要な動作を定義し、小さく焦点を絞ったものにしてください。抽象クラス: 抽象メソッドのみを宣言し、共通の動作を実現する具体的なメソッドを提供します。例: 形状クラス階層では、Shape インターフェイスは面積を取得する動作を定義し、AbstractShape 抽象クラスは幅と高さのフィールドを提供し、Rectangle クラスと Circle クラスは抽象クラスを継承して特定の形状の面積計算メソッドを提供します。 。
#Java におけるインターフェイスと抽象クラスの役割と設計原則
#インターフェイス
抽象クラス
Function
Interface
抽象クラス
インターフェイス
必要な動作のみを定義します。
抽象メソッドを宣言し、パブリックな動作を定義するだけです。
**`
javainterface Shape {
double getArea();
}abstract クラス AbstractShape は Shape {
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` 类来扩展形状类层次结构,并提供特定形状的具体方法来计算面积。
以上がJava におけるインターフェイスと抽象クラスの役割と設計原則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。