Python Language
メソッドオーバーライド
サーチ…
基本的なメソッドのオーバーライド
Pythonの基本的なオーバーライドの例を示します(Python 2とPython 3との互換性と明快さのため、 新しいスタイルクラスとprint with () )。
class Parent(object):
def introduce(self):
print("Hello!")
def print_name(self):
print("Parent")
class Child(Parent):
def print_name(self):
print("Child")
p = Parent()
c = Child()
p.introduce()
p.print_name()
c.introduce()
c.print_name()
$ python basic_override.py
Hello!
Parent
Hello!
Child
Childクラスが作成されると、 Parentクラスのメソッドを継承します。これは、親クラスが持つどのメソッドも、その子クラスも持つことを意味します。例では、 introduceのために定義されたChild 、それが定義されているため、クラスParentのクラス定義で明示的に定義されていないにも関わらず、 Child 。
この例では、 Childが独自のprint_nameメソッドを定義するときにオーバーライドが発生します。このメソッドが宣言されなかった場合、 c.print_name()は"Parent"ます。しかし、 Childはprint_nameのParentの定義をオーバーライドしています。 print_name 、 c.print_name()を呼び出すと、 "Child"という単語が表示されます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow