Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziedziczenie., private, public...
Milczar
post
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ź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


NIE. Bo korzystasz w tym przypadku z funkcji publicznej, ktora jest zdeklarowana w klasie A, a ona ma mozliwosc korzystac z metod/zmiennych prywatnych.

  1. <?php
  2.  
  3. class A
  4. {
  5.  private function pryw()
  6.  {
  7.  echo "private";
  8.  }
  9.  
  10.  public function accesspryw()
  11.  {
  12.  $this->pryw();
  13.  }
  14. }
  15.  
  16. class B extends A
  17. {
  18. public function life()
  19. {
  20. $this->pryw();
  21. }
  22. }
  23.  
  24. $oB = new B();
  25. $oB->accesspryw(); // to zadziala
  26. $oB->life(); // to juz nie zadziala
  27.  
  28.  
  29. ?>


Ten post edytował sf 19.04.2006, 18:05:50
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 03:27