014-006-008
メソッドチェーンでのsuper呼び出し
中級
問題説明
メソッドチェーンでのsuper呼び出し
この問題では: 3階層の継承クラス(Grandparent→Parent→Child)でsuperキーワードを使って親クラスのメソッドを連鎖的に呼び出し、標準入力から読み込んだ各レベルの名前を使って順番にメッセージを表示するプログラムを作成します。
学習目標: 継承階層でsuperを使ったメソッドチェーンを理解する
概要
標準入力から3つの名前を読み込み、3階層のクラス継承で各レベルのメソッドをsuperで呼び出し、処理を積み重ねるプログラムを作成してください。
入力
3行の文字列(Grandparent、Parent、Childクラスに対応する名前)
仕様
- Grandparentクラスに
nameフィールドとコンストラクタ(名前を受け取る)、greet()メソッド("Hello from {name}"を出力) - ParentクラスがGrandparentを継承し、コンストラクタで2つの名前を受け取りgreet()をオーバーライド(super.greet()後に"Hello from {parentName}"を出力)
- ChildクラスがParentを継承し、コンストラクタで3つの名前を受け取りgreet()をオーバーライド(super.greet()後に"Hello from {childName}"を出力)
- Mainで3つの名前をScannerで読み込み、Childインスタンスのgreet()を呼び出す
入出力例
入力:
Grandparent
Parent
Child
出力:
Hello from Grandparent
Hello from Parent
Hello from Child
