Dziedziczenie cz.1

We wcześniejszym wpisie o programowaniu obiektowym w Pythonie opisałem podstawy dziedziczenia. Klasę bazową (Superclass), z której klasa potomna dziedziczy wszystkie atrybuty i metody zapisujemy w deklaracji klasy pochodnej (Subclass) jako argument tzn.

class Subclass(Superclass):
    pass

Gdy klasa potomna dziedziczy po kilku klasach bazowych, to dziedziczy też atrybuty i metody z tych klas. Gdy jednak w dwóch różnych klasach bazowych są atrybuty lub metody o takich samych nazwach, to klasa potomna dziedziczy ten atrybut lub tę metodę, której klasa była wcześniej na liście argumentów w definicji klasy potomnej tzn.

class Person:
    greeting = 'Hi!'
    def function1(self):
        print('hello')

class Employee:
    greeting = "What's up!"
    def function1(self):
        print('world')
    def function2(self):
        pass

class Manager(Employee, Person):
    pass

if __name__ == '__main__':
    john_doe = Manager()
    print(dir(john_doe)
    print(john_doe.greeting)
    john_doe.function1() 

Jak widać na podstawie powyższego przykładu klasa Manager posiada obie metody: function1() i function2() oraz zmienną greeting. Wartością zmiennej greeting będzie napis What’s up! a wynikiem funkcji będzie wyświetlenie napisu world.

>>część druga<<

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *