class Shape {
private String color;
// 親クラスのコンストラクタ
public Shape(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}
class Rectangle extends Shape {
private int width;
private int height;
// 子クラスのコンストラクタ
public Rectangle(String color, int width, int height) {
// 親クラスのコンストラクタを明示的に呼び出す
super(color);
// 子クラスのインスタンス変数を初期化
this.width = width;
this.height = height;
}
// 矩形の面積を計算するメソッド
public int calculateArea() {
return width * height;
}
}
public class Main {
public static void main(String[] args) {
// Rectangle クラスのインスタンスを生成
Rectangle rectangle = new Rectangle("Blue", 5, 10);
// 親クラスのメソッドを使用して色を取得
System.out.println("Shape color: " + rectangle.getColor());
// 子クラスのメソッドを使用して面積を取得
System.out.println("Rectangle area: " + rectangle.calculateArea());
}
}
この例では、Rectangle
クラスのコンストラクタ内で super(color)
を使用して、Shape
クラスのコンストラクタを呼び出しています。