将 UML 图实现为 java 代码(同时使用聚合和多态)

Posted

技术标签:

【中文标题】将 UML 图实现为 java 代码(同时使用聚合和多态)【英文标题】:implementing UML diagram to java code (uses both aggregation and polymorphism) 【发布时间】:2017-09-13 17:32:59 【问题描述】:

我正在做一个让我有点困惑的 java 练习。当方法在接口中时如何使用多态性?一些帮助将不胜感激。

Setter 和 getter 可以省略。

到目前为止我所拥有的:

界面:

interface Interface 
    public void start();
    public void stop();

头等舱:

class Class1 implements Interface 

    private String brand;

    @Override
    public void start()  
    System.out.println("Hello from start"); 

    @Override
    public void stop()  
    System.out.println("Hello from stop");

第 2 类:

class Class2 implements Interface 

    private String plate;

    @Override
    public void start()  
   System.out.println("Hello from start");
   

    @Override
    public void stop()  
    System.out.println("Hello from stop");
    

聚合类:

class Aggregate 

    private String destination;
    private String starting;

    public void trip(interface : Interface) 
        interface = new Aggregate(Interface);
    

【问题讨论】:

【参考方案1】:

java中的接口,是抽象方法的集合。当一个类实现一个接口时,它继承了接口的抽象方法,这样类就可以为那些专门为自己的方法添加一个主体。也就是说,类可以override接口中提到的那些方法。相信你知道overridingoverloading是java中的两种多态。因此,在您上面的答案中,您确实正确使用了多态性。只需添加一个与类相关的简单方法体,例如在屏幕上打印一些内容(如作业中所述),以添加更多含义。

【讨论】:

我想我理解你所说的抽象方法集合。我刚刚进行了一些编辑以添加基本的系统输出。你说我上面的代码是完整的吗? 我认为您也应该在 Travel 类中添加 Bike 和 Bus 的私有字段,以表示聚合关系。不需要 getter 和 setter,因为分配说它们可以被省略。是的,我想,那么代码就完成了。

以上是关于将 UML 图实现为 java 代码(同时使用聚合和多态)的主要内容,如果未能解决你的问题,请参考以下文章

UML类图关系(泛化 继承实现依赖关联聚合组合)

设计模式之UML类图以及类间关系(泛化 实现依赖关联聚合组合)

UML中的类图关系

UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合)

UML类图关系(泛化(继承)实现依赖关联聚合组合)

UML-类图详解(依赖关联聚合组合泛化实现)