解説
似たクラスがいくつもあると、共通部分を何度も書くのは無駄です。継承を使うと、共通の性質を「親クラス」にまとめ、各クラスは差分だけ書けます。
class Cat(Animal): と書くと、Cat は Animal を継承し、Animal の __init__(name の保存)をそのまま受け継ぎます。一方 speak() は子クラスで上書き(オーバーライド)して、それぞれ違う鳴き方にできます。
リストに別々のクラスのインスタンスを混ぜても、同じ a.speak() で呼び出せば、それぞれのクラスのメソッドが動きます。これを「ポリモーフィズム(多態性)」と呼び、共通の操作で異なる振る舞いを引き出せます。
継承は『再利用』の代表例で、大きなプログラムを整理する強力な道具です。
書き方
class 子クラス(親クラス): — 親の属性・メソッドを受け継ぐ(継承)。 ・オーバーライド: 親と同じ名前のメソッドを子で定義すると上書きされる。 ・__init__ を定義しなければ親の __init__ をそのまま使う。 ・異なるクラスでも同名メソッドを共通の書き方で呼べる(多態性)。
書いて動かす
この回の課題
Animal を親クラスにして Cat と Dog を継承で作り、speak() をそれぞれ上書きして、ループでまとめて鳴かせてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。