[Java - OOP Advanced - Interfaces] Problem 08 - Military Elite
Здравейте,
Пускам темата за дискусия относно решението на задача Problem 08 - Military Elite.
Преди да гледам видеото по-горе, реших задачата, но тъй като гледам, че има някакви разминавания и ще ми бъде интересно да споделите и вие какво мислете по въпроса.
Аз смятам, че extend-ването на interface-ите не трябва да спира само до Private интерфейс-а, а след това LeutenantGeneral и SpecialisedSoldier interfaces трябва да extend-ват Private interface, след това Engineer и Commando interfaces трябва да extend-нат SpecialisedSoldier интерфейс.
Така както е решено излиза например, че ако реша да имплементирам SpecialisedSoldier, той ще задължи да имплементирам само публичния метод getCorps() или ако реша да използвам полиморфизъм пак ще се вижда само този метод, но не и всички други методи, които са задължителни за 1 SpecialisedSoldier.
Във видеото се казва, че тъй като LeutenantGeneral държи в себе си колекция от Private-и, няма да extend-ва Private, смисъл LeutenantGeneral Is A Private, следователно изпълнява условието да бъде extend-нато - поне така смятам аз, но искам да събера повече мнения по въпроса, за да се знае кое по-правилно.
Все пак и темата е за интерфейси и е важно да се знае, тъй като е ясно, че judge не може да тества това дали е правилно.
П.С темата не е органичаваща само за Java, така че хора от C# също може да се включат.