Сформулируйте определение "расширение класса"

Я понимаю, что переопределение и расширение это два разных понятия.

Переопределение - это свойство класса, позволяющее изменить реализацию метода(атрибута), предоставляемого одним из его базовых классов. Т.е., пусть имеется 2 класса (базовый и subclass):

class Person:   
    def go(self):
        print('go')
    def sleep(self):
        print('sleep')
class doctor(Person):
    def go(self):
        print('doctor go')

Здесь мы переопределили метод go.

А с помощью расширения мы можем расширить возможности родительского класса

class Person:   
    def go_1(self):
        print('go')
    def sleep(self):
        print('sleep')
    def go(self):
        if hasattr(self,'go_2'):
            self.go_2()
        else:
            self.go_1()
class doctor(Person):
    def go_2(self):
        print('doctor go')
P=Person()
D=doctor()
P.go()
D.go()

Может кто-нибудь дать определение понятию?


Ответы (0 шт):