インスタンスメソッドの継承
簡単な例から見ていこう。
code:python
class Hoge:
def show(self):
print('# show of Hoge')
class Foo(Hoge):
pass
f1 = Foo()
f1.show()
# show of Hoge
継承することで、子クラスのインスタンスf1は親クラスのインスタンスメソッドshowを利用できるようになった。
親クラスと同じ名称のメソッドを子クラス側でも定義してみよう。
code:python
class Hoge:
def show(self):
print('# show of Hoge')
class Foo(Hoge):
def show(self):
print('# show of Foo')
f1 = Foo()
f1.show()
# show of Foo
となり、子クラス側で定義されたメソッドが有効になっている。これをオーバーライド(override)といい、メソッドを上書きすることで引き継いだ機能を変更することができる。
子クラスは継承するだけでなく、子クラス固有のメソッドを定義することができる。
code:python
class Foo(Hoge):
def show(self):
print('# show of Foo')
def arata(self):
print('# arata in Foo')