Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [oop] wykozystywanie metody z klasy a w klasie b
skowron-line
post
Post #1





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


witam mam pytanie zapewne banalne i wiele osob zadrwi ze mnie ale ze dopiero stawiam pierwsze kroki w OOP mam takie pytanie

jezeli mam klase do A i w niej jakies metody i teraz w klasie B chcę uzyc metody z klasy A to czy mozna to zrobic?? i jak to zrobic?? czy tu chodzi o dziedziczenie?? prosilbym moze o jakis prosty przyklad
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Można, przez dziedziczenie (klasa B dziedziczy po klasie A), zawarcie instancji klasy A w klasie B albo uczynienie metodę klasy A statyczna:
  1. <?php
  2. class A {
  3. public function methodA()
  4. {
  5.  print __METHOD__.PHP_EOL;
  6. }
  7. }
  8.  
  9. class B extends A {
  10. public function methodB()
  11. {
  12.  $this->methodA(); // A::methodA() jest również zwyczajnie dostępna jako metoda klasy B (bo jest publiczna;
  13. }
  14. }
  15. ?>


  1. <?php
  2. class A {
  3. public function methodA()
  4. {
  5.  print __METHOD__.PHP_EOL;
  6. }
  7. }
  8.  
  9. class B {
  10. /*
  11.  * @var A
  12.  */
  13. private $_A;
  14.  
  15. public function __construct()
  16. {
  17. $this->_A = new A();
  18. }
  19.  
  20. public function methodB()
  21. {
  22.  $this->A->methodA();
  23. }
  24. }
  25. ?>



  1. <?php
  2. class A {
  3. public static function methodA()
  4. {
  5.  print __METHOD__.PHP_EOL;
  6. }
  7. }
  8.  
  9. class B {
  10. public function methodB()
  11. {
  12.  A::methodA();
  13. }
  14. }
  15. ?>





edit:

Oczywiście każde z tych rozwiązań posiada plusy i minusy.. trzeba wybrać odpowiednio do potrzeb.
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 - 19:25