【发布时间】:2021-04-23 03:48:17
【问题描述】:
public abstract class shape {
protected double volume;
protected double surface;
}
public class cube extends shape {
public double side;
public double newSide;
public cube(double side) {
side = newSide;
}
public void volume(double newSide){
System.out.println (newSide);
}
}
public class shapes {
public static void main(String[] args) {
cube a = new cube(5);
a.volume();
}
}
这会输出错误:
constructor cube in class cube cannot be applied to given types;
cube a = new cube(5.5);
required: double
found: no arguments
reason: actual and formal argument lists differ in length
我将所有变量都设置为双倍,所以不知道为什么会抱怨。
【问题讨论】:
-
您将
newSide分配给side,鉴于您的参数是side,它基本上什么都不做。我相信你的意思是在你的构造函数中做this.side = side -
如果我做 public cube(double side) { this.side=side;} 我会收到同样的错误。
-
给出错误的不是构造函数调用,而是
volume()调用。 -
请同时发布您的代码用途。以便其他人能够理解并提供解决方案。
标签: java types constructor abstract