// Animal クラスの定義
class Animal {
// 動物の種類を表すインスタンス変数
protected String animalType;
// コンストラクタ
public Animal(String animalType) {
this.animalType = animalType;
}
// 動物の種類を取得するメソッド
public String getAnimalType() {
return animalType;
}
}
// Dog クラスの定義
class Dog extends Animal {
// 犬の種類を表すインスタンス変数
private String dogType;
// コンストラクタ
public Dog(String animalType, String dogType) {
// 親クラスのコンストラクタを明示的に呼び出す
super(animalType);
this.dogType = dogType;
}
// 犬の鳴き声を取得するメソッド
public String getDogSound() {
// 犬の鳴き声を返す(ここでは簡略化)
return "Woof! Woof!";
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Dog クラスのインスタンスを生成
Dog myDog = new Dog("Mammal", "Golden Retriever");
// 親クラスのメソッドを使って動物の種類を取得
System.out.println("Animal Type: " + myDog.getAnimalType());
// 子クラスのメソッドを使って犬の鳴き声を取得
System.out.println("Dog Sound: " + myDog.getDogSound());
}
}
この例では、Animal
クラスが親クラスであり、Dog
クラスが子クラスです。Dog
クラスのコンストラクタ内で super(animalType)
を使用して、親クラスのコンストラクタを明示的に呼び出しています。