サーチ…


基本的なメソッドのオーバーライド

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"ます。しかし、 Childprint_nameParentの定義をオーバーライドしています。 print_namec.print_name()を呼び出すと、 "Child"という単語が表示されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow