Python Language
Metodo Overriding
Ricerca…
Metodo di base prioritario
Ecco un esempio di override di base in Python (per chiarezza e compatibilità con Python 2 e 3, usando la nuova classe di stile e 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
Quando viene creata la classe Child , eredita i metodi della classe Parent . Ciò significa che qualsiasi metodo che ha la classe genitore avrà anche la classe figlia. Nell'esempio, l' introduce è definita per la classe Child perché è definita per Parent , nonostante non sia stata definita esplicitamente nella definizione di classe di Child .
In questo esempio, l'override si verifica quando Child definisce il proprio metodo print_name . Se questo metodo non è stato dichiarato, allora c.print_name() avrebbe stampato "Parent" . Tuttavia, Child ha sovrascritto la Parent definizione di 's di print_name , e così ora su chiamando c.print_name() , la parola "Child" viene stampato.