Co to jest dziedziczenie w Pythonie?

Dziedziczenie to fundamentalny koncept programowania obiektowego (OOP), który umożliwia nam tworzenie nowych klas na bazie już istniejących. Python, jako język wspierający OOP, oferuje wszechstronne wsparcie dla dziedziczenia, co pozwala na wielokrotne wykorzystanie kodu oraz tworzenie bardziej zorganizowanego i czytelnego kodu.

Przykład dziedziczenia w Pythonie

Załóżmy, że chcemy stworzyć system do zarządzania pojazdami, w którym mamy kilka różnych typów pojazdów, takich jak samochody i motocykle. Wszystkie te pojazdy mają pewne wspólne cechy, takie jak marka, model i rok produkcji. Zamiast definiować te same atrybuty w każdej klasie pojazdu, możemy utworzyć klasę bazową Vehicle i następnie dziedziczyć ją w klasach potomnych.

class Vehicle:
    def __init__(self, brand, model, year):
        # Inicjalizacja wspólnych atrybutów dla wszystkich pojazdów
        self.brand = brand
        self.model = model
        self.year = year

    def display_info(self):
        # Wyświetlanie informacji o pojeździe
        print(f"Marka: {self.brand}, Model: {self.model}, Rok: {self.year}")

# Klasa Car dziedzicząca z Vehicle
class Car(Vehicle):
    def __init__(self, brand, model, year, doors):
        # Inicjalizacja klasy bazowej
        super().__init__(brand, model, year)
        # Dodatkowy atrybut specyficzny dla samochodu
        self.doors = doors

    def display_car_info(self):
        # Rozszerzenie metody display_info o informacje o drzwiach
        self.display_info()
        print(f"Liczba drzwi: {self.doors}")

# Klasa Motorcycle dziedzicząca z Vehicle
class Motorcycle(Vehicle):
    def __init__(self, brand, model, year, cc):
        # Inicjalizacja klasy bazowej
        super().__init__(brand, model, year)
        # Dodatkowy atrybut specyficzny dla motocykla
        self.cc = cc

    def display_motorcycle_info(self):
        # Rozszerzenie metody display_info o informacje o pojemności silnika
        self.display_info()
        print(f"Pojemność silnika: {self.cc}cc")

W powyższym przykładzie klasa Vehicle jest klasą bazową, która zawiera atrybuty i metody wspólne dla wszystkich pojazdów. Klasy Car i Motorcycle są klasami pochodnymi, które dziedziczą atrybuty i metody z klasy Vehicle i rozszerzają je o swoje specyficzne cechy.

Wykorzystanie klas

Teraz, gdy mamy zdefiniowane nasze klasy, możemy utworzyć instancje samochodów i motocykli oraz wykorzystać ich metody:

# Tworzenie instancji samochodu
my_car = Car("Toyota", "Corolla", 2020, 4)
my_car.display_car_info()

# Tworzenie instancji motocykla
my_motorcycle = Motorcycle("Yamaha", "R1", 2018, 998)
my_motorcycle.display_motorcycle_info()

Podsumowanie

Dziedziczenie w Pythonie umożliwia tworzenie nowych klas, które mogą dziedziczyć atrybuty i metody z jednej lub więcej klas bazowych. Jest to potężne narzędzie, które ułatwia ponowne wykorzystanie kodu, a także pomaga w utrzymaniu kodu bardziej zorganizowanym i czytelnym.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top