java - 抽象类和构造函数问题以及这个 UML 图

标签 java inheritance constructor uml abstract-class

所以我必须使用这个 UML 图构建一些类。

enter image description here

我在使用圆形和方形时遇到问题。

据我所知,Circle 继承自 Ellipse,Ellipse 继承自 Shape。据我所知,当您使用子类型的构造函数时,主体中的第一行应该是 super()。

我不明白的是我应该如何用我的图表来做到这一点。我不知道 double r 要去哪里,也不知道当 Ellipse 或 Shape 中没有只接受这两个参数的构造函数时如何调用 super(x,y) 。 与正方形的想法相同。

当我严格遵循 UML 时,我会遇到构造函数错误。

最佳答案

圆是一种椭圆形,其两个焦点位于同一位置,即它仅由一个半径定义。因此,如果您的圆构造函数是:

Circle(double x, double y, double r)

您需要使用以下方式调用椭圆构造函数:

super(x, y, r, r)

正方形和长方形也是如此。

关于java - 抽象类和构造函数问题以及这个 UML 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678315/

相关文章:

java - 获取锁对象线程正在等待

java - 继承两个Java类

java - 需要继承和构造函数代码方面的帮助

java - 从可能包含空格的 java 执行命令

java - 在 Clojure 中调用不带参数的 Java 实例方法

c++ - 在另一个类的构造函数中创建 n 个对象的最佳方法?

java - 为什么我的构造函数不工作? ( java )

C++从派生类转换为具有不同模板编号的基类

javascript - Backbone 继承模式与继承同一父类的同胞实例

c++ - 是否有一种代码密集度较低的方法来使用非默认构造函数初始化数组?