Logo David Burdelak
Słownik · Programowanie i wzorce projektowe

Co to jest dziedziczenie?

Ostatnia aktualizacja:

Dziedziczenie (inheritance) to mechanizm programowania obiektowego, w którym klasa pochodna przejmuje pola i metody klasy bazowej, może dodawać własne oraz nadpisywać odziedziczone. Pozwala ponownie wykorzystać kod i wyrażać relację „jest rodzajem”, np. kot jest rodzajem zwierzęcia.

Przykład

class Zwierze { public function glos(): string { return '...'; } }
class Kot extends Zwierze {
    public function glos(): string { return 'miau'; }
}

Klasa Kot dziedziczy po Zwierze i nadpisuje metodę glos().

Kompozycja zamiast dziedziczenia

Głęboka hierarchia klas jest sztywna i krucha: zmiana w klasie bazowej wpływa na wszystkie pochodne. Wiele zespołów stosuje zasadę „preferuj kompozycję nad dziedziczeniem”, czyli składanie obiektów z mniejszych części, które współpracują, zamiast dziedziczenia zachowań.

Dziedziczenie wielokrotne

PHP i Java pozwalają dziedziczyć tylko po jednej klasie, lecz implementować wiele interfejsów. W PHP wspólny kod można dodatkowo współdzielić przez cechy (traits). Pozwala to uniknąć problemów z niejednoznacznością.

Ma to bezpośredni związek z praktykami, na których opiera się pisanie czytelnego i zrozumiałego kodu.

Zobacz w praktyce

Powiązane pojęcia

Wszystkie hasła z kategorii Programowanie i wzorce projektowe