Python Language
Metoda przesłonięcia
Szukaj…
Zastępowanie podstawowych metod
Oto przykład podstawowego zastąpienia w Pythonie (ze względu na przejrzystość i zgodność zarówno z Pythonem 2, jak i 3, przy użyciu nowej klasy stylu i print pomocą () ):
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
Kiedy tworzona jest klasa Child , dziedziczy ona metody klasy Parent . Oznacza to, że wszelkie metody, które posiada klasa nadrzędna, będą miały również klasę podrzędną. W tym przykładzie introduce jest zdefiniowane dla klasy Child ponieważ jest zdefiniowane dla klasy Parent , mimo że nie zostało zdefiniowane wyraźnie w definicji klasy Child .
W tym przykładzie print_name występuje, gdy Child print_name własną metodę print_name . Gdyby ta metoda nie została zadeklarowana, to c.print_name() wydrukowałby "Parent" . Jednak Child ma nadpisane w Parent „s definicji print_name , a więc teraz po wezwaniu c.print_name() , słowo "Child" jest drukowana.