Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> konstruktot w klasie abstrakcyjnej
joytec
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 24.06.2005

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


witam.

mianowicie mamy pewna klase abstrakcyjna i w niej konstruktor. w parametrze konstruktora dodajemy obiekt. Chce wywolac metode na tym obiekcie w osobnej metodzie w klasie abstrakcynej "operacjaobiekt" i z kolei te metode w klasie potomnej "Jakastampotomna" w metodzie "metoda_w_klasie_potomnej". Teraz pytanie nie wiem jak dodac obiekt do konstruktora klasy abstrakcyjnej, z tego co wiem nie mozna tworzyc instancji klas abstrakcyjnych. Czy ten konstruktor tworzy ten obiekt automatycznie po wywolaniu metody w klasie potomnej. Nie wiem prosze o jakies sugestie. Dzieki.

  1. <?php
  2. abstract class Security{
  3. private $_action;
  4. public function __construct($var){
  5.  $this->_action = $var;
  6. }
  7. public function operacjaobiekt(){
  8.  $this->_action->jakasmetoda();
  9. }
  10. }
  11.  
  12. class Jakastampotomna extends Security{
  13. public function metoda_w_klasie_potomnej(){
  14.  $this->operacjaobiekt();
  15. }
  16. }
  17. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
koodlaty
post
Post #2





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Cytat(joytec @ 19.12.2006, 02:48:29 ) *
...z tego co wiem nie mozna tworzyc instancji klas abstrakcyjnych...

Instancji klas abstrakcyjnych - jasne że nie, ale instancje wewnątrz klasy abstrakcyjnej - czemu nie?
W konstruktorze klasy potomnej musisz wywołać konstruktor rodzica statycznie - podając owy obiekt jako parametr.

  1. <?php
  2. class Jakastampotomna extends Security
  3. {
  4.  function __construct($var)
  5.  {
  6. parent::__construct($var);
  7.  }
  8.  
  9.  public function metoda_w_klasie_potomnej()
  10.  {
  11. $this->operacjaobiekt();
  12.  }
  13. }
  14. ?>
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: 15.10.2025 - 02:45