leo184
31.03.2017 - 15:42
Привет )
Почитал форумы, везде пишут что вызов метода из дочернего класса родительским невозможен, т.к. родительский ничего не знает о потомках, Но все же проверил и оказалось что дочерний метод вызывается.
Вопрос: Я читал какую то устаревшую информацию ?)
Насколько вообще корректен такой вызов ?
Спасибо )
Игорь_Vasinsky
31.03.2017 - 16:00
это через жопу называется.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
leo184
Покажи код
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
leo184
31.03.2017 - 16:34
Цитата (Arh @ 31.03.2017 - 12:05) |
leo184 Покажи код |
Сори, ступил ) Она у меня вызывается из объекта дочернего класса, поэтому работает.
Примерно так:
class first {
function isget() {
$this -> get();
}
}
class two extends first {
public function get() {
echo "Вызвалась";
}
}
$ec = new two();
$ec -> isget();
Насколько такой вызов корректен ?)
T1grOK
31.03.2017 - 16:58
first бы сделать абстрактным, с абстрактным методом get
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Игорь_Vasinsky
31.03.2017 - 16:58
настолько, что часть твоего базового класса без дочернего без полезна.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (leo184 @ 31.03.2017 - 16:34) |
Насколько такой вызов корректен ?) |
Вполне корректен, если в классе first тоже реализован метод get(). Не имеет особого значения абстрактный он или нет. Короче, нельзя, чтобы родитель зависел от потомка, это нарушает всё что только можно в ООП и лишает всех достоинств перед процедуркой.
Цитата (leo184 @ 31.03.2017 - 15:42) |
Почитал форумы, везде пишут что вызов метода из дочернего класса родительским невозможен |
В случае со статическими классами это так. Нельзя вызвать дочерний метод из родительского через self, потому что родитель не знает ничего о своих потомках. Только если из потомка вызвать метод родителя, который вызовет через static метод этого же потомка. Идиотизм полнейший, за такое нужно просто чмырить, гнобить, е**ть, короче делать всё, чтобы таких программистов в отрасли не было.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.