Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: OOP - Wywoływanie konstruktora klasy nadrzędnej
Forum PHP.pl > Forum > PHP > Object-oriented programming
nu_moon
Witam,

Pisze sobie właśnie pewien projekt w celach szkoleniowych i uparłem się na OOP.
Chciałbym zapytać, czy jest możliwość wymuszenia wywołania konstruktora klasy bazowej tj.

Mam klase A, z której dziedziczy klasa B.

W klase B moge coprawda wywołać parent::__construct()
ale konieczne byłoby wymuszenie wywołania konstruktora automatycznie,

Czy istnieje taka możliwość ?
LBO
Automatycznie nie da rady (tj np w C#), ale można zrobić trik:

  1. <?php
  2. abstract class A
  3. {
  4.   final public function __construct()
  5.   {
  6.       // przygotowujemy obiekt
  7.       $this->setup();
  8.   }
  9.  
  10.   abstract protected function setup();
  11. }
  12.  
  13. class B extends A
  14. {
  15.    protected function setup()
  16.    {
  17.        // dodatkowe czynności przygotowujące obiekt
  18.    }
  19. }
  20.  
  21. $b = new B;
  22. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.