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.