Menu
Coddy logo textTech

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 Animal

Skł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 animal

Mimo ż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 metoda

Wynik:

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.

challenge icon

Wyzwanie

Średni
  • vehicle.py: Zawiera klasę nadrzędną Vehicle
  • car.py: Zawiera klasę Car, która dziedziczy po Vehicle
  • driver.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ę Vehicle o 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 zmian
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Python online