Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > oop полиморфизм


Автор: gcc 14.7.2009, 19:28
а что-то я не нашел на php.net полиморфизм!!
в программе по-моему был ::super()

как он реализуеися с помощью псевдо-клаласса SUPER? его нет? надо самоvу велоспед написать? дайте пример!

Автор: skyboy 14.7.2009, 19:42
Цитата(gcc @  14.7.2009,  18:28 Найти цитируемый пост)
в программе по-моему был ::super()

http://ua2.php.net/manual/ru/language.oop5.paamayim-nekudotayim.php

Автор: gcc 14.7.2009, 19:50
то есть через обычное наследование?
parent объект родителя...

ради интереса, а почему нигде в документации не упоминается слово "полимофизм"?

Автор: youri 14.7.2009, 19:54
мб потому что там описывается синтаксис, а не принципы ООП

а при чем parent:: к полиморфизму?

Автор: gcc 14.7.2009, 20:04
все будет прицеплено к классу родителя, т.е к parent (работаеть с ним, переопределять)? или я ошибся?

как я делал раньше:
Код

use base 'Parent::bla'; 
sub new {shift->SUPER::new;}

sub plu_plus_bla_bla {
shift->SUPER::add;
shift->SUPER::add2;
shift->SUPER::no_no;
$gg->SUPER::fff;
$gg ->{ffff} = 1;
$gg->SUPER::to_do;
}


это можно с поомощью абстраных классов сделать

Автор: youri 15.7.2009, 06:07
доступ к родителю в php можно получить через parent::

что касается полиморфизма, то в идеале базовый класс должен просто определять интерфейс, а потомки реализовывать его. Но я, похоже, не совсем понимаю вопрос (может мое слабое знание perl мешает O_o)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)