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:
Klasa1to klasa bazowa, nadrzędna lub rodzic,Klasa2to klasa pochodna, podrzędna lub dziecko,- obiekty klasy
Klasa2mogą korzystać z metod i pól zdefiniowanych wKlasa1.
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.