Dziedziczenie w Pythonie

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Dziedziczenie to mechanizm programowania obiektowego, w którym jedna klasa przejmuje cechy i zachowania innej klasy. W Pythonie klasę bazową podaje się w nawiasach po nazwie klasy potomnej.

Składnia

class Klasa2(Klasa1):
    pass

Taki zapis oznacza, że Klasa2 dziedziczy po Klasa1. Inaczej mówiąc:

  • Klasa1 to klasa bazowa, nadrzędna lub rodzic,
  • Klasa2 to klasa pochodna, podrzędna lub dziecko,
  • obiekty klasy Klasa2 mogą korzystać z metod i pól zdefiniowanych w Klasa1.

Przykład

class Zwierze:
    def oddychaj(self):
        print("Oddycham")

class Pies(Zwierze):
    def szczekaj(self):
        print("Hau!")

azor = Pies()
azor.oddychaj()  # metoda odziedziczona z klasy Zwierze
azor.szczekaj()  # metoda klasy Pies

W przykładzie klasa Pies dziedziczy po klasie Zwierze, więc obiekt azor może wywołać metodę oddychaj().

Nadpisywanie metod

Klasa potomna może zdefiniować metodę o tej samej nazwie co klasa bazowa. Wtedy metoda z klasy potomnej zastępuje wersję odziedziczoną.

class Zwierze:
    def glos(self):
        print("Dźwięk zwierzęcia")

class Kot(Zwierze):
    def glos(self):
        print("Miau")

Zapamiętaj

Zapis class Klasa2(Klasa1): oznacza, że Klasa2 jest dzieckiem Klasa1, a nie odwrotnie.