Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OOP] Dziedziczenie pól.
Crozin
post
Post #1





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Witajcie,
napotkałem dziś na dziwny "błąd", a mianowicie:
  1. <?php
  2.  
  3. class A{
  4. protected $FieldA='wartosc pola a';
  5. protected $FieldB;
  6. //...
  7. private function Fun(){
  8. $this->FieldB='ala ma kota';
  9. }
  10. }
  11.  
  12. class B extends A{
  13. public function __constrtuc(){
  14. print_r(get_class_vars(__CLASS__));
  15. }
  16. }
  17.  
  18. ?>

Zwraca:
Kod
Array
(
    [FieldA] => wartosc pola a
    [FieldB] =>
)

Dlaczego dziedziczone są jedynie te wartości pól, które zostały zdeklarowane razem z polem?
PS. oczywiscie A::Fun() jest wykonywana przed konstruktorem klasy B.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
bartek00
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 12.04.2007
Skąd: Kraków

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


Witam

"oczywiscie A::Fun() jest wykonywana przed konstruktorem klasy B."

Nie widze zeby gdzies byla wywolywana funkcja A:fun(). Poza tym jest ona prywatna wiec w klasie B jej nie wywolasz. Zadziala jesli w konstruktorze A wywolasz fun(), a konstruktorze B wywolasz parent:__construct.

Pozdrawiam


--------------------
"What you are talking to me about what"
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat
Dlaczego dziedziczone są jedynie te wartości pól, które zostały zdeklarowane razem z polem?
Dziedziczone są pola. I nic więcej.
Jeśli pole ma wartość to jest dziedziczone z wartością, jeśli nie to nie.

Ustawienie wartości później nic nie wnosi. Nie zmienisz tego.
Możesz co najwyżej wewnątrz klasy pochodnej nadać wartości polom dziedziczonym.
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 Aktualny czas: 22.08.2025 - 09:53