// Shapeクラスの定義
class Shape {
// 面積を計算するメソッド
public void calculateArea() {
System.out.println("面積を計算します");
}
}
// Circleクラスの定義(Shapeクラスを継承)
class Circle extends Shape {
private double radius; // 円の半径
// コンストラクタ
public Circle(double radius) {
this.radius = radius;
}
// 面積を計算するメソッド(Shapeクラスのメソッドをオーバーライド)
@Override
public void calculateArea() {
double area = Math.PI * radius * radius;
System.out.println("円の面積: " + area);
}
}
// Rectangleクラスの定義(Shapeクラスを継承)
class Rectangle extends Shape {
private double width; // 矩形の幅
private double height; // 矩形の高さ
// コンストラクタ
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
// 面積を計算するメソッド(Shapeクラスのメソッドをオーバーライド)
@Override
public void calculateArea() {
double area = width * height;
System.out.println("矩形の面積: " + area);
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Circleクラスの利用
Circle circle = new Circle(5.0);
circle.calculateArea(); // 出力: 円の面積: 78.53981633974483
// Rectangleクラスの利用
Rectangle rectangle = new Rectangle(4.0, 6.0);
rectangle.calculateArea(); // 出力: 矩形の面積: 24.0
}
}
このコードでは、Shapeクラスが基本的なメソッドを提供し、CircleクラスとRectangleクラスがそれを継承して必要なメソッドをオーバーライドしています。それぞれのクラスのインスタンスを作成し、calculateArea
メソッドを呼び出すことで、円と矩形の面積が計算されて表示されます。