// 形状クラス
class Shape {
// 形状の色を表すインスタンス変数
private String color;
// 形状の色を初期化するコンストラクタ
public Shape(String color) {
this.color = color;
}
// 形状の色を取得するメソッド
public String getColor() {
return color;
}
}
// 円クラス
class Circle extends Shape {
// 円の半径を表すインスタンス変数
private double radius;
// 円の半径を初期化するコンストラクタ
public Circle(String color, double radius) {
// 親クラスのコンストラクタを呼び出し
super(color);
// 円の半径を初期化
this.radius = radius;
}
// 円の半径を取得するメソッド
public double getRadius() {
return radius;
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Circle クラスのインスタンスを生成
Circle myCircle = new Circle("Red", 5.0);
// 形状の色を取得して表示
System.out.println("Shape Color: " + myCircle.getColor());
// 円の半径を取得して表示
System.out.println("Circle Radius: " + myCircle.getRadius());
}
}
この例では、Shape
クラスが親クラスとして、Circle
クラスがその子クラスとして定義されています。Circle
クラスのコンストラクタで super(color)
を使用して、親クラスのコンストラクタを呼び出しています。これにより、Shape
クラスのコンストラクタが暗黙的に呼び出され、形状の色が初期化されます。