Suche…


Grundlegende Methode überschreiben

Hier ist ein Beispiel für die grundlegende Überschreibung in Python (aus Gründen der Klarheit und Kompatibilität mit Python 2 und 3, unter Verwendung der neuen Stilklasse und print mit () ):

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

Wenn die Child Klasse erstellt wird, erbt sie die Methoden der Parent Klasse. Dies bedeutet, dass alle Methoden, die die übergeordnete Klasse hat, auch die untergeordnete Klasse haben. Im Beispiel ist die introduce für die Child Klasse definiert, da sie für Parent definiert ist, obwohl sie nicht explizit in der Klassendefinition von Child .

In diesem Beispiel tritt das Überschreiben auf, wenn Child seine eigene Methode print_name definiert. Wenn diese Methode nicht deklariert wurde, hätte c.print_name() "Parent" gedruckt. Allerdings Child hat die außer Kraft gesetzt Parent ‚s Definition von print_name , und so jetzt beim Aufruf c.print_name() , das Wort "Child" wird gedruckt.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow