Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Parent, wywoływanie konsturktrów
Boshi
post 10.11.2014, 15:15:48
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Cześć, mógłby mi ktoś wyjaśnić jak działa taka klasa?
Tworzę klasę dyrektor w niej konstuktor i metodę wyświetlająca dane- ok.
Tworzę klasę pochodną i tu mam problem z zrozumieniem konstuktora. Dlaczego muszę podać mu wszystkie dane takie jak imie, nazwisko itd? zamiast tylko wymaganej zmiennej np $ocena ?
Czy ma to związek z tym, że najpierw bazowy konstruktor ustawia te dane?

Kolejno wywoływany jest konturktor klasy bazowej
  1. parent::__construct($imie, $nazwisko,$stanowisko, $zarobki);
.

I teraz tworzę sobie np instancję klasy... rozumiem, że parametry aktualne trafiają do konstukra klasy Nauczyciel, a co z bazowym konturktorem?
  1. $nauczyciel=new nauczyciel('Agata', 'Mlynarska', 'Nauczyciel', 2500, 'historia ');




  1. class Dyrektor
  2. {
  3. private $imie, $nazwisko, $stanowisko,$zarobki;
  4.  
  5. public function __construct($imie, $nazwisko,$stanowisko, $zarobki)
  6. {
  7. $this->imie=$imie;
  8. $this->nazwisko=$nazwisko;
  9. $this->stanowisko=$stanowisko;
  10. $this->zarobki=$zarobki;
  11.  
  12. }
  13. public function Show()
  14. {
  15. echo 'Imie:'. $this->imie. "<br>". $this->nazwisko. "<br>". $this->stanowisko. "<br>". $this->zarobki."<br>";
  16. }
  17. }
  18.  


Dziedziczona klasa

  1. class nauczyciel extends Dyrektor
  2. {
  3. private $przedmiot;
  4.  
  5. public function __construct($imie, $nazwisko,$stanowisko, $zarobki,$przedmiot)
  6. {
  7. parent::__construct($imie, $nazwisko,$stanowisko, $zarobki);
  8.  
  9.  
  10. $this->przedmiot=$przedmiot;
  11.  
  12. }
  13.  
  14.  
  15.  
  16. public function Show()
  17. {
  18. parent::Show();
  19. echo 'przedmiot prowadzacy: '. $this->przedmiot;
  20.  
  21. }
  22. }


Ten post edytował Boshi 10.11.2014, 15:19:02
Go to the top of the page
+Quote Post
rad11
post 10.11.2014, 15:49:36
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dlatego musisz podac te wszystkie dane:

  1. public function __construct($imie, $nazwisko,$stanowisko, $zarobki,$przedmiot)
  2. {
  3. parent::__construct($imie, $nazwisko,$stanowisko, $zarobki);
  4.  
  5.  
  6. $this->przedmiot=$przedmiot;
  7.  
  8. }


Tak ma to zwiazek z tym ze konstruktor ustawia te dane bo przeciez odwolujesz sie do rodzica

  1. parent::__construct($imie, $nazwisko,$stanowisko, $zarobki);


Parametry trafiaja do konstruktora Dyrektor + parametr przedmiot i wyniki sa laczone wywolujac metode klasy Nauczyciel:

  1. public function Show()
  2. {
  3. parent::Show();
  4. echo 'przedmiot prowadzacy: '. $this->przedmiot;
  5.  
  6. }
Go to the top of the page
+Quote Post
aniolekx
post 10.11.2014, 15:55:09
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


Sprawdź w dokumentacji PHP co jest napisane na temat Konstruktorów w PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 19:13