Python Language
Переопределение метода
Поиск…
Основной метод переопределения
Ниже приведен пример базового переопределения в Python (для ясности и совместимости с Python 2 и 3, используя новый класс стиля и 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
Когда класс Child создан, он наследует методы класса Parent . Это означает, что любые методы, которые имеет родительский класс, также будет иметь дочерний класс. В этом примере introduce определено для класса Child потому что оно определено для Parent , несмотря на то, что оно явно не определено в определении класса Child .
В этом примере переопределение происходит, когда Child определяет свой собственный метод print_name . Если этот метод не был объявлен, то c.print_name() напечатал бы "Parent" . Однако Child переопределил определение Parent print_name , и теперь, после вызова c.print_name() , печатается слово "Child" .