【发布时间】:2021-08-05 10:00:17
【问题描述】:
我正在尝试从相同的接口实现类,但在方法中使用不同数量的参数,如下面的代码。
interface Shape {
double getArea();
}
class Square implements Shape {
@Override
public double getArea(double side) { // error because different number of parameter
return side;
}
}
class Triangle implements Shape {
@Override
public double getArea(double height, double width) { // error because different number of parameter
return height * width / 2;
}
}
Java中有没有办法在接口中定义方法而不限制参数的数量?
【问题讨论】:
-
这违背了界面的目的。你的类应该有一个构造函数来传递边或高度和宽度,然后有一个
getArea尊重这些属性,但它本身不接受任何参数 -
虽然您可以定义
double getArea(double... args);,但我认为这不是您正在寻找的特定示例的答案 -
@luk2302 我仍在努力更好地理解 OOP。谢谢你的建议!
标签: java oop interface overriding