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

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方

新規登録