← クエスト一覧

クエスト40:クラスの継承

スライド 1 / 5
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 40 / 85

クエスト40:クラスの継承

発展 +10 XP
🏠
今回の課題
Animal を継承した Dog クラスで speak() を上書き(オーバーライド)して、「ポチ:ワン!」と鳴くようにしよう。
📖 解説を見る
🧬 継承って何?

継承は、あるクラスの機能を引き継いで新しいクラスを作るしくみです。共通部分を親クラスにまとめ、ちがう部分だけ子クラスで書けます。

✏️ 書き方:
class Shape:
    def area(self):
        return 0

class Square(Shape):
    def __init__(self, side):
        self.side = side
    def area(self):  # 親と同じ名前で上書き
        return self.side ** 2

SquareShape の機能を引き継ぎつつ、area だけを自分用に書きかえています。

📋 作るもの:
DogAnimal を継承する(もう書いてあるよ)
・その中で、親と同じ名前speak メソッドを書いて上書きする
・「名前:ワン!」と表示する。名前は親から引き継いだ self.name が使える
・そのまま実行すると親の speak が動いて「ポチ:...?」と出る。これを変えるのが今回の課題

💡 どこで使う?

共通の土台を1回だけ書いて、種類ごとにちがいを付け足したいときに使います。Animal を土台に Dog・Cat が鳴き方だけ変える、画面部品の共通処理をまとめてボタン・入力欄で見た目だけ変える、など、同じコードの重複を減らせます。

⚠️ ポイント:
class 子クラス(親クラス): と書く
・親と同じ名前のメソッドを書くと上書き(オーバーライド)できる
__init__ は親のものがそのまま引き継がれる
ヒントを見る
親と同じ名前のメソッドを子クラスの中に書けば上書きできるよ。名前は親の __init__ がセットしてくれているので self.name でそのまま使える。
期待する出力
ポチ:ワン!
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: Cat(Animal)クラスを作って「ミケ:ニャー!」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
ミケ:ニャー!
未挑戦

問題 2: Animalinfo()を継承してDogから「動物:ポチ」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
動物:ポチ
未挑戦

問題 3: Bird(Animal)クラスを作ってfly()メソッドで「ピヨは空を飛んだ!」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
ピヨは空を飛んだ!
コピーしました!