Loading...
mbeleva88 avatar mbeleva88 69 Точки

[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# също може да се включат.

 

Тагове:
1
C# OOP Advanced
IvelinTenev avatar IvelinTenev 51 Точки

Аз лично съм ползвал наследяване и при интерфейсите:

public interface Soldier {

    String getId();
    String getFirstName();
    String getLastName();
}

public interface Private extends Soldier {

    String getSalary();
}

и така нататък.

Поздрави,

Ивелин Тенев

 

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.