018 オブジェクト指向の深化(インターフェイスと抽象クラスの利用) 002 問題

問題

  • 以下の動物(Animal)に関するクラス階層を作成してください。
    • Animal(抽象クラス)
      • メソッド: makeSound()(鳴き声を返す)
    • Mammal(哺乳動物)
      • メソッド: giveBirth()(出産する)
    • Bird(鳥)
      • メソッド: layEggs()(卵を産む)
    • Dog(犬)
      • メソッド: guardHouse()(家を守る)

ヒント

  1. Animal クラス(抽象クラス):
    • Animal クラスは抽象クラスであり、makeSound() メソッドを持ちます。
    • このクラスは他の動物クラスの基盤となり、共通の特徴や振る舞いを提供します。
  2. Mammal クラス(具象クラス):
    • Mammal クラスは Animal クラスを拡張し、giveBirth() メソッドを実装します。
    • これにより、哺乳動物の特有の行動を提供します。
  3. Bird クラス(具象クラス):
    • Bird クラスは Animal クラスを拡張し、layEggs() メソッドを実装します。
    • これにより、鳥の特有の行動を提供します。
  4. Dog クラス(具象クラス):
    • Dog クラスは Mammal クラスを拡張し、guardHouse() メソッドを実装します。
    • これにより、犬の特有の行動を提供します。

このようにして、Animal を基盤にして、哺乳動物と鳥のクラスがそれぞれの特有の振る舞いを持ち、Dog クラスがそれらを継承して特有の行動を追加するクラス階層が構築されます。各クラスは、継承によって共通の特徴や振る舞いを再利用できるため、オブジェクト指向プログラミングの原則に基づいた設計となります。

解答例

「018 オブジェクト指向の深化」問題集リスト