Klasy abstrakcyjne a typy anonimowe

Założenie: Pokażemy, jak wykorzystać typy anonimowe w definicjach klas abstrakcyjnych w PHP, aby stworzyć elastyczną klasę bazową dostosowaną do różnych typów danych.

Krok po kroku:

  1. Definicja klasy abstrakcyjnej z typem anonimowym:
    
    abstract class AbstractDataContainer {
      public function __construct(public readonly mixed $data) {}
      abstract public function processData(): void;
    }
    				

    Tworzymy klasę abstrakcyjną AbstractDataContainer, która przyjmuje dowolny typ danych w konstruktorze. Metoda processData jest abstrakcyjna, co oznacza, że musi być zaimplementowana w klasach potomnych.

  2. Klasa potomna dla danych liczbowych:
    
    class NumberContainer extends AbstractDataContainer {
      public function processData(): void {
        echo "Przetwarzam liczbę: " . $this->data . "\n";
      }
    }
    				

    Tworzymy klasę NumberContainer dziedziczącą po AbstractDataContainer i implementującą metodę processData dla liczb.

  3. Klasa potomna dla danych tekstowych:
    
    class StringContainer extends AbstractDataContainer {
      public function processData(): void {
        echo "Przetwarzam tekst: " . $this->data . "\n";
      }
    }
    				

    Tworzymy klasę StringContainer dziedziczącą po AbstractDataContainer i implementującą metodę processData dla tekstu.

  4. Użycie klas:
    
    $numberContainer = new NumberContainer(123);
    $stringContainer = new StringContainer("Przykładowy tekst");
    
    $numberContainer->processData();
    $stringContainer->processData();
    				

    Tworzymy obiekty klas potomnych i wywołujemy metodę processData.

Ten przykład pokazuje, jak używać typów anonimowych (mixed) w klasach abstrakcyjnych, aby stworzyć elastyczne i wielokrotnego użytku komponenty. Zachęcamy do dalszego zgłębiania tematu klas abstrakcyjnych i interfejsów w PHP!

Dodaj komentarz 0

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