Podstawy dziedziczenia
Część sekcji Programowanie obiektowe ścieżki Python w Coddy. Lekcja 17 z 64.
Dziedziczenie pozwala klasie dziedziczyć atrybuty i metody innej klasy, tworząc relację rodzic–dziecko.
Oto przykład klasy nadrzędnej:
class Animal:
def __init__(self, name):
self.name = name
def info(self):
print(f"I am {self.name}, an animal")Utwórz klasę potomną, która dziedziczy po klasie nadrzędnej:
class Dog(Animal):
pass # Dziedziczy wszystko po AnimalSkładnia class Dog(Animal): oznacza, że Dog dziedziczy po Animal. Umieść nazwę klasy nadrzędnej w nawiasach.
Utwórz obiekty obu klas:
generic_animal = Animal("Creature")
buddy = Dog("Buddy")Użyj odziedziczonych metod:
generic_animal.info()
buddy.info()Wynik:
I am Creature, an animal
I am Buddy, an animalMimo że Dog nie definiuje __init__ ani info, automatycznie je dziedziczy po Animal.
Możesz dodać nowe metody do klasy potomnej:
class Dog(Animal):
def bark(self):
print(f"{self.name} says Woof!")
buddy = Dog("Buddy")
buddy.info() # Odziedziczona metoda
buddy.bark() # Nowa metodaWynik:
I am Buddy, an animal
Buddy says Woof!Najważniejsza informacja: Klasy potomne dziedziczą wszystkie atrybuty i metody z klasy nadrzędnej. Użyj składni class Child(Parent):, aby utworzyć dziedziczenie. Dzięki temu możesz ponownie używać kodu i tworzyć logiczne hierarchie klas.
Wyzwanie
Średnivehicle.py: Zawiera klasę nadrzędnąVehiclecar.py: Zawiera klasęCar, która dziedziczy poVehicledriver.py: Główny plik do testowania implementacji
Każdy plik zawiera szczegółowe komentarze TODO, które pomogą Ci w implementacji. Musisz:
- Uzupełnić klasę
Vehicleo atrybuty make i model - Poprawnie zaimplementować dziedziczenie klas w klasie
Car - Skonfigurować prawidłowe instrukcje importu między plikami
- Utworzyć i przetestować obiekty w pliku driver
Uważnie stosuj się do komentarzy TODO, ponieważ zawierają wskazówki krok po kroku prowadzące do rozwiązania.
Spróbuj swoich sił
# TODO: Zaimportuj klasę Vehicle z pliku vehicle.py
# TODO: Zaimportuj klasę Car z pliku car.py
# TODO: Utwórz obiekt Vehicle z marką "Toyota" i modelem "Corolla"
vehicle = None
# TODO: Utwórz obiekt Car z marką "Honda" i modelem "Civic"
car = None
# TODO: Wywołaj metodę display_info() na obiekcie vehicle
# Oczekiwany wynik: "Vehicle: Toyota Corolla"
# TODO: Wywołaj metodę display_info() na obiekcie car
# Oczekiwany wynik: "Vehicle: Honda Civic"
# Uwaga: Car dziedziczy metodę display_info z Vehicle bez zmianTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektyParametr selfMetodyAtrybutyMetoda konstruktora (__init__)Powtórzenie – prosty kalkulator4Dziedziczenie
Podstawy dziedziczeniaFunkcja super()Nadpisywanie metodDziedziczenie wielokrotneKolejność rozwiązywania metodPodsumowanie – hierarchia pracowników7Metody specjalne
Wprowadzenie do metod magicznychPrzeciążanie operatorówMagiczne metody kontenerówPowtórka – własna lista10Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec Strategy2Dekoratory
Wprowadzenie do dekoratorówDekorator propertyDekorator metody statycznejDekorator metody klasowej5Polimorfizm
Ponowne omówienie nadpisywania metodTypowanie kaczeKlasy i metody abstrakcyjneProjektowanie interfejsówPodsumowanie — kalkulator kształtów8Zaawansowane koncepcje programowania obiektowego
Kompozycja a dziedziczenieMiksyMetody statyczne i klasoweDekoratory klasMenedżery kontekstu11Wzorce projektowe, część 2
Wzorzec PolecenieWzorzec AdapterWzorzec DekoratorWzorzec Metoda szablonowaWzorzec StanWzorzec Kompozyt3Właściwości klas
Zmienne instancji a zmienne klasoweDekoratory właściwościAtrybuty prywatnePowtórzenie — menedżer kont bankowych6Hermetyzacja
Public, Protected, Private — pamięćModyfikatory dostępuUkrywanie informacjiDekoratory właściwości — zaawansowanePodsumowanie — system ewidencji uczniów12Projekt: System zarządzania biblioteką
Przegląd projektuKlasy Book i UserSystem wypożyczeńFunkcja wyszukiwaniaInterfejs administratoraTestowanie i integracjaPoćwicz samodzielnie: Kompilator Python online