Dziedziczenie a typy wariantne
Założenie: Zrozumieć, jak kowariancja i kontrawariancja wpływają na dziedziczenie w kontekście typów generycznych w PHP.
Krok po kroku:
- Definicja klasy bazowej: Stwórzmy klasę bazową
Owoc
. - Definicja klasy pochodnej: Utwórzmy klasę
Jablko
dziedziczącą poOwoc
. - Kowariancja: Utwórzmy funkcję, która przyjmuje jako argument tablicę owoców i wypisuje ich nazwy. Ponieważ `Jablko` jest typem `Owoc`, możemy przekazać tablicę jabłek do tej funkcji.
- Podsumowanie: W tym przykładzie pokazaliśmy prostą kowariancję. Funkcja zaprojektowana do pracy z `Owoc` może również pracować z `Jablko`, ponieważ `Jablko` jest podtypem `Owoc`.
nazwa = $nazwa;
}
}
?>
kolor = $kolor;
}
}
?>
nazwa . "\n";
}
}
$jablka = [new Jablko("Szampion", "czerwony"), new Jablko("Golden", "żółty")];
wypiszNazwyOwoców($jablka);
?>
Ten przykład prezentuje podstawy kowariancji w kontekście dziedziczenia i typów generycznych. Zachęcamy do dalszego zgłębiania tematu kontrawariancji i bardziej zaawansowanych zastosowań typów wariantnych w PHP.