Jak nadpisać metodę w Pythonie?

Nadpisywanie metod w programowaniu obiektowym jest kluczową techniką, która pozwala na modyfikację zachowania metod dziedziczonych z klasy bazowej w klasie pochodnej. Python, jako język wspierający programowanie obiektowe, oferuje prosty i intuicyjny sposób na nadpisywanie metod. W tym artykule pokażemy, jak to zrobić, używając konkretnego przykładu.

Przykład nadpisania metody

Załóżmy, że mamy klasę bazową Vehicle (Pojazd), która posiada metodę description wyświetlającą informacje o pojeździe. Chcemy stworzyć klasę pochodną Car, która nadpisze metodę description, dodając specyficzne informacje dla samochodu.

class Vehicle:
    def __init__(self, brand, model):
        self.brand = brand  # Marka pojazdu
        self.model = model  # Model pojazdu

    def description(self):
        # Metoda wyświetlająca opis pojazdu
        return f"Pojazd marki {self.brand}, model {self.model}"

class Car(Vehicle):
    def __init__(self, brand, model, horsepower):
        super().__init__(brand, model)
        self.horsepower = horsepower  # Moc w koniach mechanicznych

    def description(self):
        # Nadpisanie metody description dla klasy Car
        original_desc = super().description()  # Wywołanie metody
                                                # z klasy bazowej
        return f"{original_desc}, moc: {self.horsepower} KM"

# Użycie klasy Car
my_car = Car("Ford", "Mustang", 450)
print(my_car.description())

W tym przykładzie, metoda description w klasie Car nadpisuje metodę description z klasy bazowej Vehicle. Używamy funkcji super() do wywołania oryginalnej metody z klasy bazowej, a następnie rozszerzamy jej działanie o dodatkowe informacje dotyczące mocy samochodu. Dzięki temu, metoda description w klasie Car zawiera zarówno ogólne informacje o pojeździe, jak i szczegółowe dane charakterystyczne dla samochodu.

Podsumowanie

Nadpisywanie metod to ważna cecha programowania obiektowego, która umożliwia tworzenie bardziej złożonych i spersonalizowanych hierarchii klas. W Pythonie jest to proces prosty i intuicyjny, który znacząco zwiększa elastyczność i możliwości dostosowywania zachowania obiektów. Jak pokazano na przykładzie, nadpisywanie metod pozwala na rozszerzanie i modyfikowanie funkcjonalności klas dziedziczonych, co jest kluczowe w budowaniu efektywnych i elastycznych aplikacji.

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