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.