Поиск…


Основной метод переопределения

Ниже приведен пример базового переопределения в 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" .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow