所以我必须使用这个 UML 图构建一些类。
我在使用圆形和方形时遇到问题。
据我所知,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/