Игорь_Vasinsky
17.09.2013 - 14:32
я об этом уже писал.
ему тот костыль выше нужен тока если.
получать интерфейсы родительских классов и сравнивать их с проверяемым.
_____________
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
MiksIrУ класса С есть все методы из B и все методы из А, так что ошибку мы не получим, в моем случае.
Класс С, действительно реализует все (6 штук) интерфейсы. Задача просто другая, 'получить все интерфейсы
из класса которые идут после слова implements...'
В вашем случае
Не обязательно должна быть реализация в A1, сделайте так
interface A {
public function test();
}
abstract class A1 implements A {
}
class B1 extends A1 {
public function test() {
}
}
и ошибки не будет...
B1 реализует A - это не корректно (А вообще ничего не знает про B1)
но корректно следующее:
A реализует A1, A2
B реализует B1, B2, A1, A2
C реализует C1, C2, B1, B2, A1, A2
как пример, что С реализует все интерфейсы :
function f1(C1 $n) {}
function f2(C2 $n) {}
function f3(B1 $n) {}
function f4(B2 $n) {}
function f5(A1 $n) {}
function f6(A2 $n) {}
$f1 = f1(new C());
$f2 = f2(new C());
$f3 = f3(new C());
$f4 = f4(new C());
$f5 = f5(new C());
$f6 = f6(new C());
(ошибок не выдаст)
Игорь_Vasinsky
17.09.2013 - 14: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
MiksIrПросто ваш пример заведомо неработающий без ключевого слово abstract или реализации метода test() в A1
Мы немного отклонились от темы...
Игорь_Vasinsky
Избыточность в количестве отображаемых связей КЛАСС-ИНТЕРФЕЙС
Посмотрите картинки выше, я для вас специально сделал.
>Если по теме - то я бы все же регекспом парсил.
извините, но мне больше по душе вариант 'Анализа родителей'
>И еще не забудьте, что интерфейс может наследовать интерфейсы.
Тут как раз проблем нет (тот же ->getParent())
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.