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"
.