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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow