![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 13.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam klase, która ma metody: Kod class A{ private function pryw() { print("<br>PRYWATNA<br>"); } public function accesspryw() { $this->pryw(); } } oraz ma inne metody publiczne. Metody accesspryw() potrzebuje by korzystac z metody pryw() wywolujac ją z obiektu klasy A. Kolejna klasa 'B' dziedziczy po klasie A. Kod class B extends A { //i jakies inne metody klasy B } Pytanie następujące: Czy klasa B będzie miała dostęp do metody pryw() z klasy A (poprzez metode accesspryw() )? Chyba nie powinna jej dziedziczyć po klasie A bo w klasie A metoda pryw() jest prywatna, tak? Wywołanie accesspryw() z obiektu klasy B powinno dac (błąd dostępu do metody prywatnej/błąd niezdefiniowanej metody)? Pozdrawiam i z góry dzięki za odpowiedź. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 13.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Czyli defacto klasa potomna dzidziczy metody private, tak?
Czemu w takim razie nie dziedziczy zmiennych private? Gdy mam zadeklarowane w klasie A zmienne i metode: Kod public $I; private $L; public $M; public $T; public function test() { print("ID=".$this->I."<br>"); print("LOGIN=".$this->L."<br>"); print("MAIL=".$this->M."<br>"); print("TYPE=".$this->T."<br>"); } Elementy te sa dziedziczone przez klase B. Po wywolaniu metody test() z obiektu klasy A, wyswietlane sa wszystkie zmienne (wartosci), po wywolaniu test() z obiektu klasy B nie ma wartosci zmiennej $L - nie widzi jej bo jest private. Jaka roznica miedzy zmiennymi a metodami? Jest na to jakieś obejscie? Zeby metody private nie byly wogole widoczne w klasach potomnych? A co z protected? tak samo? Pozdrawiam Ten post edytował Milczar 19.04.2006, 18:24:06 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 16:37 |