Java 面试跟进课堂设计,避免钻石案

Java 面试跟进课堂设计,避免钻石案,java,uml,Java,Uml,最近有人问我设计问题。有两类马和鸟。我需要设计一个名为Unicorn的新类,它拥有类Horse和Bird的所有方法 Horse Bird | | Unicorn 既然在Java中我们不能扩展两个类(以避免菱形问题),我们如何实现这一点 请导游。提前感谢。在Java中,一个类不能扩展多个类,但一个接口可以扩展多个接口 在进入类级设计之前,首先创建两个接口Horse和Bird,然后创建接口Unicorn,它将扩展这两个接口 使用模式来实现这

最近有人问我设计问题。有两类马和鸟。我需要设计一个名为Unicorn的新类,它拥有类Horse和Bird的所有方法

Horse          Bird
     |         |
       Unicorn
既然在Java中我们不能扩展两个类(以避免菱形问题),我们如何实现这一点


请导游。提前感谢。

在Java中,一个类不能扩展多个类,但一个接口可以扩展多个接口


在进入类级设计之前,首先创建两个接口Horse和Bird,然后创建接口Unicorn,它将扩展这两个接口

使用模式来实现这一点。您的unicorn类将包含Bird和Horse的实例,并通过在这些包含的实例上调用它们来实现相关的方法。

可以创建Horse和Bird接口吗?您可以在同一个类中实现多个接口。