Python 入門 | クラスの利用 | クラスの継承
クラスを定義する大きな利点の 1 つは再利用できることである。一度作成したクラスは、さまざまな場所で使える。
プログラムが大きくなると、既存のクラスを改善したくなる場合がある。多くの場所で使っているクラスを直接変更することは簡単ではない。このような場合に便利な機能が継承である。
継承は、既存のクラスを基に新しいクラスを作る仕組みである。新しいクラスは元のクラスの機能を受け継ぐ。
継承を使うクラスは次のように定義する。
class クラス名(基本クラス):
... クラスの内容 ...
元のクラスを基本クラス、新しく作成したクラスを派生クラスと呼ぶ。
class Member:
name = ""
def __init__(self,str):
self.name = str
def showMsg(self):
print("Hello," + self.name + ".How are you?")
class PowerMember (Member):
mail = ""
def __init__(self,str1,str2):
self.name = str1
self.mail = str2
def showMsg(self):
print("Hello," + self.name + ".")
print("Your mail address is '" + self.mail + "'.")
taro = Member("Taro")
taro.showMsg()
hanako = PowerMember("Hanako","hanako@flower.com")
hanako.showMsg()
この例では、Member を継承して PowerMember という派生クラスを作っている。
PowerMember は __init__(self, str1, str2) という 2 つの引数を持つコンストラクターを定義し、self.name と self.mail に値を代入する。
PowerMember で定義している変数は mail だけだが、基本クラス Member に name があるため self.name も利用できる。派生クラスは基本クラスの機能を受け継ぐ。
継承できるものはメンバー変数だけではない。メソッドも引き継げる。継承を使うと、既存のクラスへ機能を追加しながら拡張できる。
Python のライブラリーには、継承して再利用できるさまざまなクラスが含まれている。リスト、タプル、range などの型も、シーケンスに関連する共通の機能を持つ。