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
Clean Code - jak pisać czytelny i zrozumiały kod
Overengineering w stronach internetowych
Jak zmierzyć i spłacać dług technologiczny w projekcie Powiązane pojęcia
Wszystkie hasła z kategorii Programowanie i wzorce projektowe