Dziedziczenie a typy sparametryzowane

Założenie: Stworzymy klasę bazową Lista i rozszerzymy ją o klasę ListaLiczb, która będzie mogła przechowywać tylko liczby, wykorzystując typy sparametryzowane (generics) w PHP.

Krok po kroku:

  1. Krok 1: Tworzenie klasy bazowej Lista.
    
    dane[] = $element;
      }
    
      public function wyswietl(): void {
        echo "Zawartość listy: " . implode(", ", $this->dane) . PHP_EOL;
      }
    }
    ?>
    				

    Ta klasa definiuje podstawową funkcjonalność listy – dodawanie i wyświetlanie elementów. mixed $element oznacza, że klasa może przyjmować dowolny typ danych.

  2. Krok 2: Tworzenie klasy ListaLiczb dziedziczącej po Lista z ograniczeniem typu.
    
    
    				

    Klasa ListaLiczb dziedziczy po Lista, ale metoda dodaj przyjmuje tylko liczby całkowite (int) lub zmiennoprzecinkowe (float). Próba dodania innego typu danych spowoduje błąd.

  3. Krok 3: Testowanie klas.
    
    dodaj(10);
    $listaLiczb->dodaj(3.14);
    $listaLiczb->wyswietl(); // Wyświetli: Zawartość listy: 10, 3.14
    
    $lista = new Lista();
    $lista->dodaj(10);
    $lista->dodaj("tekst");
    $lista->wyswietl(); // Wyświetli: Zawartość listy: 10, tekst
    
    ?>
    				

    Ten kod demonstruje, że ListaLiczb akceptuje tylko liczby, podczas gdy Lista akceptuje dowolne typy.

Podsumowanie: Ten przykład pokazuje podstawy dziedziczenia w PHP oraz jak ograniczyć typy danych przyjmowane przez metody w klasach potomnych, wykorzystując typy sparametryzowane (choć w PHP nie są one tak zaawansowane jak w innych językach). Zachęcamy do dalszego zgłębiania tematu programowania obiektowego w PHP!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *