如何设计合格的uml类图?

如何设计合格的uml类图?,uml,Uml,java访谈中的一个问题: 您必须设计一个管理3只鸭子的系统: 第一个知道如何游泳和飞翔,第二个知道游泳和狩猎,第三个知道游泳、飞翔和狩猎。描述UML类图并解释术语抽象类和接口。问题结束。 在我看来,我将创建一个包含swim()方法的“Duck”类,另外两个类“flyingDuck”和“huntingDuck”将派生自“Duck”,分别包含fly()和hunt()方法。还有一个类将是“universalDuck”,它将派生自“huntingDuck”,并将包含eat()方法。你怎么认为?这是一个

java访谈中的一个问题: 您必须设计一个管理3只鸭子的系统: 第一个知道如何游泳和飞翔,第二个知道游泳和狩猎,第三个知道游泳、飞翔和狩猎。描述UML类图并解释术语抽象类和接口。问题结束。
在我看来,我将创建一个包含swim()方法的“Duck”类,另外两个类“flyingDuck”和“huntingDuck”将派生自“Duck”,分别包含fly()和hunt()方法。还有一个类将是“universalDuck”,它将派生自“huntingDuck”,并将包含eat()方法。你怎么认为?这是一个好的设计还是使用接口更好?

为什么要用eat()方法对扩展了“huntingDuck”的“universalDuck”建模?这是在Java面试问题中提出的吗

因为问题要求解释术语抽象类和接口,所以您可能需要在模型中使用这些概念。要将duck3作为同时继承“flyingDuck”的fly()和“huntingDuck”的hunt()的类的实例,您需要使用“flyingDuck”和“huntingDuck”的接口,因为在Java中,只能从接口进行多次继承