在Java多态性中调用子类
我有一个接受特定形状颜色的超类Shape.Java,还有几个计算不同多边形面积的子类。我创建了一个主类,打印出用户想要计算的多边形的不同选择在Java多态性中调用子类,java,polymorphism,Java,Polymorphism,我有一个接受特定形状颜色的超类Shape.Java,还有几个计算不同多边形面积的子类。我创建了一个主类,打印出用户想要计算的多边形的不同选择 public static void choices() { System.out.println("What do you want to compute?"); System.out.println("a. Rectangle"); System.out.println("b. Triangle"); System.ou
public static void choices() {
System.out.println("What do you want to compute?");
System.out.println("a. Rectangle");
System.out.println("b. Triangle");
System.out.println("c. Trapezoid");
}
我用了一个开关箱
case 'a': {
System.out.print("Enter width: ");
double width = input.nextDouble();
System.out.print("\nEnter height: ");
double height = input.nextDouble();
.....
}
问题是,我该如何调用我的子类矩形(它扩展了超类形状),其中包含显示用户输入并计算面积的方法?这是正确的吗
Shape rec = new Rectangle();
如果是,当我编译它时,我会得到一个错误“找不到符号构造函数矩形…”
请帮忙。你做得对。您未定义的符号可能是错误或不存在导入的结果;可能
Rectangle
未编译,或者您在Rectangle上没有公共的无参数构造函数
由于动态调度,当您
Shape rec=新矩形()代码>
在运行时,解释器将查看rec
,并调用Rectangle
上的方法,如果您调用的方法是在Shape
上定义的,然后在Rectangle
上覆盖的,那么您的Rectangle
构造函数是否期望宽度和高度作为参数?