2014-03-29 30 views
1

來自java訪談的問題: 你必須設計一個系統,將管理3只鴨子: 第一個知道如何游泳和飛行,第二個知道游泳和打獵,第三個知道游泳,飛行和狩獵。描述UML類圖並解釋術語抽象類和接口。問題結束。 在我看來,我會用一個方法swim()創建一個「Duck」類,另外兩個類「flyingDuck」和「huntingDuck」將從「Duck」派生,並且將包含方法fly()和狩獵()分別。另外一個類將是「universalDuck」,它將從「huntingDuck」派生幷包含eat()方法。你怎麼看 ?這是一個很好的設計,還是最好用接口來做呢?如何設計一個合格的uml類圖?

+0

http://programmers.stackexchange.com/questions/108240/why-are-interfaces-useful –

回答

0

爲什麼你想用eat()方法來擴展「huntingDuck」的「universalDuck」?這是在你的Java面試問題中要求的嗎?

由於問題要求解釋抽象類和接口這個術語,所以您可能希望在模型中使用這些概念。爲了讓duck3作爲類的一個實例繼承「flyingDuck」的fly()和「huntingDuck」的hunt(),您將需要使用「flyingDuck」和「huntingDuck」接口,因爲在Java中,只能有多個從接口繼承。