Помогите решить задачу

kleon1

Новичок
Добрый день

Решаю тесты. И наткнулся на такую задачу
http://puzzleua.com/z.png - Линк на диаграму


Define the Vehicle interface with an abstract ‘addLuggage’ function that takes a Container as argument.

Define the Car class that initialises an array of luggage upon instantiation.

Define the Sports class with an implementation of the ‘addLuggage’ function that throws an exception if a Suitcase is passed as argument.


Очень нужно. Разобраться
 

kleon1

Новичок
Спасибо за ответ но всеравно не могу разобраться.

Как правильно это прописать

Interface vehicle {
Abstract function addLuggage ($Container);
}
Class car implements vehicle {
Function addLuggage ($Container) {
}
}

Как дальше тут дописать исключение и имплантацию затрудняюсь
 

WMix

герр M:)ller
Партнер клуба
В интерфейсе незачем обьявлять методы абстрактными. А в классе car, метод, как раз будет абстрактным тк его имплементируем следующим наследником. Container это тоже класс, как и все остальные квадратики на твоей диаграмме. В методе Sports::addLuggage будет проверка на тип контейнера. Ну и самого главного не хватает а где оператор new?
 

Вурдалак

Продвинутый новичок
Sports::addLuggage() будет нарушать LSP тащемта, а требуемый instanceof — DIP. Люблю такие задачи.
 
Сверху