Recherche…


Méthode de base

Voici un exemple de substitution de base en Python (pour des raisons de clarté et de compatibilité avec Python 2 et 3, en utilisant une nouvelle classe de style et en print avec () ):

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

Lorsque la classe Child est créée, elle hérite des méthodes de la classe Parent . Cela signifie que toutes les méthodes de la classe parente auront la classe enfant. Dans l'exemple, le introduce est défini pour la classe Child car il est défini pour Parent , même s'il n'est pas défini explicitement dans la définition de classe de Child .

Dans cet exemple, la substitution se produit lorsque Child définit sa propre méthode print_name . Si cette méthode n'a pas été déclarée, alors c.print_name() aurait imprimé "Parent" . Toutefois, l' Child a la overriden Parent définition de l » print_name , et maintenant à appeler c.print_name() , le mot "Child" est imprimé.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow