014-003-009
superによるコンストラクタ呼び出し
初級
問題説明
superによるコンストラクタ呼び出し
この問題では: AnimalクラスとDogクラスを作成し、Dogのコンストラクタからsuper()を使って親クラスのコンストラクタを明示的に呼び出すプログラムを作成します。
学習目標: 継承におけるsuper()キーワードを使った親クラスのコンストラクタ呼び出しの仕組みを理解する
概要
サブクラスのコンストラクタでは、super()を使って親クラスのコンストラクタを明示的に呼び出すことができます。これにより、親クラスで定義されたフィールドの初期化を親クラスに委譲できます。
仕様
Animalクラス
String nameとint ageフィールドを持つ- コンストラクタ
Animal(String name, int age)で両方のフィールドを初期化する showInfo()メソッドで"Name: <name>, Age: <age>"を出力する
Dogクラス(Animalを継承)
String breedフィールドを追加する- コンストラクタ
Dog(String name, int age, String breed)でsuper(name, age)を呼び出し、breedを初期化する showInfo()をオーバーライドし、super.showInfo()を呼んだ後に"Breed: <breed>"を出力する
Mainクラス
Dogオブジェクトをnew Dog("Pochi", 3, "Shiba")で作成するshowInfo()を呼び出す
出力形式
Name: Pochi, Age: 3
Breed: Shiba
