5. Dziedziczenie w programowaniu obiektowym

Dzisiaj nasz kurs programowania pozwoli Ci zgłębić bardzo ciekawy i użyteczny temat, jakim jest dziedziczenie. W programowaniu obiektowym pozwala ono utworzyć część klasy na podstawie innej, wcześniej utworzonej klasy. W Poprzednich lekcjach, tworzyliśmy klasę Post, która posiadała zmienne: $autor, $tytuł oraz $tresc. Nie jest to lekcja dla całkowicie początkujących. Musisz już coś wiedzieć z poprzednich lekcji.

Pod naszym postem, przydałyby się komentarze. Co musimy zrobić aby ten o to pomysł przelać na kod? Uczyłeś się przez ostatnie kilka lekcji programowania obiektowego, więc wiesz już, że wszystko składa się z obiektów, które powstały na podstawie klas.

Dziedziczenie jest tym, co nam dzisiaj pomoże utworzyć klasę minimalnym wysiłkiem. Moglibyśmy stworzyć klasę komentarz. Zawierałaby ona zmienne $autor, $tresc, i można by też, dołożyć zmienną przechowującą datę, czyli $data. Zauważ, zmienne $autor i $tresc, znajdują się także w klasie Post.

Możemy więc stworzyć klasę Komentarz, na podstawie klasy Post. Wtedy zmienne, które istnieją na planie obiektu typu Post, czyli w klasie, zostaną „Przekopiowane” do klasy Komentarz.

Aby to wykonać, musimy użyć słowa extends zaraz po nazwie deklarowanej klasy. Mówimy więc językiem programowania „Klasę Komentarz, rozszerz o Post”. Wyglądałoby to tak:

class Komentarz extends Post{

}

W tym momencie klasa Komentarz, przejęła wszystkie właściwości klasy Post. Nie są one widoczne, jednak tworząc obiekt na jej podstawie, można ich użyć. Możemy jej przypisać autora, tytuł i post. Tytuł w komentarzu nie będzie nam potrzebny, więc użyjemy tylko zmiennych z autorem i treścią. Dodamy więc tylko zmienną, przechowującą datę, gettery, settery i klasa komentarza będzie gotowa.

class Komentarz extends Post{
  private $data;

  public function getData()
  {
    return $this->data;
  }

  public function setData($data)
  {
    $this->data = $data;
  }
  
}

Jak widzisz, zamiast tworzyć trzy potrzebne nam zmienne, utworzyliśmy tylko jedną. Mamy więc trzykrotnie krótszy kod. Na to właśnie pozwala nam dziedziczenie. Używamy zmiennych i funkcji innych klas, tworząc nowe.

Na początku może Ci się to wydawać tylko małym ułatwieniem. W większych projektach jest to jednak funkcjonalność, bez której nie wyobrażam sobie pracować. Klasy nie raz mają ogromną ilość funkcji i trudno by było to kopiować.

Na zadanie utwórz jakiś komentarz według tej klasy i dodaj go do naszego kodu z klasą Post i widokiem strony, tak aby to ładnie wyglądało. Będziesz musiał trochę pomyśleć. O to właśnie chodzi w programowaniu. Pochwal się rezultatem w komentarzu.

Przećwicz to sam. Wymyśl jakąś klasę, stwórz jej zmienne, wykonaj dziedziczenie i upewnij się, że to rozumiesz.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *