Portál AbcLinuxu, 10. května 2025 02:23
class Vybava { public function automat() { return 'Ano'; } } class Automobilky extends Vybava { public function __construct(){ $this->obj = new Skoda(); } } class Skoda extends Vybava { public function __construct(){ echo $this->automat(); //Ano } } class Bmw extends Vybava { public function __construct(){ echo $this->automat(); //Ano } }
parent::automat();
class Vybava { protected $db public function __construct(){ $this->db = new PDO(...); } public function automat() { return 'Ano'; } }
parent::__construct();pokud byste chtel pouzit
public function __construct(){ $this->db = new PDO(...); }pokud byste v dedicne tride nevytvoril konstruktor tak se pouzije ten rodice a nemusel byste ho volat pres parent ...
:: - je operator a pristupuje se pres nej nejen ke static ale i ke konstatntam a overridden vlastnostem a metodamHm, já myslel, že se metody volají jen "$this->nejakaMetoda()". A tu proměnnou zavlám jak? Rozdíl mezi $this->nejakaMetoda() a parent::nejakaMetoda() je prosím jaký? Díky moc.
class A { public function nejakaMetoda(){ echo 'A'; } } class B extends A { public function nejakaMetoda(){ echo 'B'; } public function test(){ parent::nejakaMetoda(); $this->nejakaMetoda(); } } $tmp = new B(); $tmp->test();
parent
můžete použít i přímo jméno té třídy. Proměnnou tak odkazovat nelze.
Místo parent
můžete použít i přímo jméno té třídy.
Děkuji, tak že je jedno jestli to zavolám parent::myMetoda() nebo Vybava::myMetoda(), chápu to správně, jo?
Proměnnou tak odkazovat nelze.Pokud proměnnou takto volat nelze, tak to znamená, že se volá klasicky $this->db, ano? Díky
Automobilky
dedila tridu Vybava
. Moc mi to nedava smysl.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.