015-003-003
ダウンキャスト:スーパークラスからサブクラスへ
中級
問題説明
ダウンキャスト:スーパークラスからサブクラスへ
この問題では: 犬の名前を入力として受け取り、Animal型変数に格納されたDogインスタンスをinstanceofで型チェックしてからダウンキャストし、Dog固有のfetch()メソッドを呼び出す処理を行い、結果を標準出力に表示するプログラムを作成します。
学習目標: スーパークラス型の変数からサブクラス型への明示的なキャスト(ダウンキャスト)を理解する
概要
Scannerで犬の名前を読み取り、Animal型変数に格納されたDogインスタンスをダウンキャストして、Dog固有のメソッドを呼び出してください。
仕様
- Animal クラス: speak()メソッドで "Animal speaks" を出力
- Dog クラス: Animalを継承、nameフィールドとコンストラクタDog(String name)を持つ、speak()をオーバーライドして "[name] barks" を出力
- Dog固有のメソッド: fetch()で "[name] fetches ball" を出力
- instanceofでの型チェック後にダウンキャスト
入力
1行: 犬の名前(文字列)
出力形式
[name] barks
[name] fetches ball
