Python 入門コース / 第6章 オブジェクト指向(第40〜46回) / レッスン 43

クラスの継承

共通部分を親クラスにまとめる

似たクラスをいくつも書くと、同じコードが重複します。共通の部分を親クラス(スーパークラス)に置き、子クラス(サブクラス)は違いだけを書くのが継承です。class 子(親): と書きます。

editor.py

オーバーライドと super()

子クラスで同じ名前のメソッドを定義すると、親のものより子のものが優先されます(オーバーライド)。親の処理も使いたいときは super().メソッド() で呼び出します。__init__super().__init__() を呼び忘れると、親が設定するはずの属性が作られません。

継承関係を調べる

isinstance() は「そのクラス(または子孫)のインスタンスか」、issubclass() は「クラス同士の親子関係か」を判定します。同じ親を持つ子たちを、同じ書き方で扱える——これが継承の一番の利点です(上のループがまさにそれです)。

editor.py

Python は多重継承(親を複数持つ)もできますが、探索順が複雑になり事故のもとです。入門段階では 1 つの親に絞り、「is-a(○○の一種である)」と言える関係のときだけ継承を使ってください。言えないなら、次回以降で扱うコンポジション(持たせる)のほうが適切です。

✅ 理解度チェック

子クラスから親クラスのメソッドを呼び出すには?