目次
確認環境:Python 3
クラスの継承とは

クラスがクラスを継承すると、継承先のクラスは継承元のクラスの機能を引き継ぎます。
継承先のクラスは、差分の機能を追加するだけでよくなります。
継承元のクラスのことを「基底クラス 」or 「親クラス 」or 「スーパークラス」といいます。
継承先のクラスのことを「派生クラス」 or「 子クラス」 or「 サブクラス」といいます。
継承の書き方
| class クラス名 (継承元のクラス名): |
- 継承先のクラスは、かっこの中に継承元のクラス名を記述します。
- 継承元のクラス(親クラス)は、複数指定できます。多重継承が可能です。
- 継承したクラスをさらに継承することもできます。
クラスの継承のサンプルです。
class Color1:
def getName1(self):
return "赤"
class Color2(Color1):
def getName2(self):
return "青"
c2 = Color2()
print(c2.getName1()) # 赤
print(c2.getName2()) # 青
1~3行目は、親クラスです。
5~7行目は、子クラスです。
5行目は、「Color2」の後に「(Color1)」と記述することにより、Color2は、Color1を継承しています。
11行目のgetName1メソッドは子クラスに存在しませんが実行できます。1行目の親クラスのメソッドを実行します。
→子クラスは、親クラスのメソッドを実装していませんが利用できます。継承の利点です。
多重継承のサンプル
多重継承のサンプルです。
class Color1:
def getName1(self):
return "赤"
class Color2:
def getName2(self):
return "青"
class Color3(Color1,Color2):
def getName3(self):
return "黄"
c3 = Color3()
print(c3.getName1()) # 赤
print(c3.getName2()) # 青
print(c3.getName3()) # 黄
9行目のクラスは、1行目と5行目のクラスを継承しています。多重継承です。
Pythonでは多重継承が可能です。
15,16行目は、継承元(親)のクラスのメソッドを実行しています。
親クラスのインスタンスを指定する(super)
親クラスのインスタンスを指定するサンプルです。
class Color1:
def getName1(self):
print ("赤")
class Color2(Color1):
def getName2(self):
super().getName1()
c2 = Color2()
c2.getName2() # 赤
7行目は、superで親クラスを指定してドット(.)の後に親クラスのメソッドを記述しています。
11行目は、子クラスの6行目のメソッドを実行し、7行目のsuperとメソッドで親クラスのメソッドを実行します。
関連の記事
