Relacja “jest-a” (is-a)
Założenie: Zrozumieć i zaimplementować relację “jest-a” (is-a) w PHP używając interfejsów i klas abstrakcyjnych.
Krok po kroku:
- Definicja interfejsu `Uruchamialny`: Interfejs definiuje metodę, którą musi zaimplementować każda klasa, która chce być “uruchamialna”.
- Definicja klasy abstrakcyjnej `Pojazd`: Klasa abstrakcyjna definiuje wspólne cechy pojazdów, np. ma metodę `jedz`. Metoda `uruchom` jest zdefiniowana w interfejsie, więc musi być zaimplementowana w klasach potomnych.
- Definicja klasy `Samochod`: Klasa `Samochod` dziedziczy po klasie abstrakcyjnej `Pojazd` i implementuje interfejs `Uruchamialny`.
- Użycie klas: Tworzymy obiekt klasy `Samochod` i wywołujemy jego metody.
interface Uruchamialny {
public function uruchom();
}
abstract class Pojazd {
public function jedz() {
echo "Pojazd jedzie...\n";
}
abstract public function uruchom();
}
class Samochod extends Pojazd implements Uruchamialny {
public function uruchom() {
echo "Samochód został uruchomiony.\n";
}
}
$samochod = new Samochod();
$samochod->jedz();
$samochod->uruchom();
Ten przykład pokazuje, jak interfejsy i klasy abstrakcyjne pomagają w modelowaniu relacji “jest-a”. `Samochód jest-a Uruchamialny` i `Samochód jest-a Pojazd`. Zachęcamy do dalszego zgłębiania tematu programowania obiektowego w PHP!