为什么错误public class Test{ public static void main(String[] args) { Shape sanjiaoxing= new sanjiaoxing(3,4,5); Shape jixing= new juxing(6,7); Shape yuan= new yuan(2); sanjiaoxing.zhouchang(); sanjiaoxing.mianji(); juxing.zhouchang(); juxing.mianji(); yuan.zhouchang(); yuan.mianji(); } }
时间: 2024-03-04 11:48:44 浏览: 184
实例分析Java中public static void main(String args[])是什么意思
这段代码有几个错误:
1. 没有导入 Shape、sanjiaoxing、juxing、yuan 类的包(如果这些类在同一个包里可以忽略这个问题)。
2. 在 Shape 类的实例化处,Shape 是一个抽象类,不能直接实例化,需要使用具体的子类进行实例化。
3. 在 sanjiaoxing、juxing、yuan 类的实例化处,应该使用子类的构造方法进行实例化。
4. 在 Shape 类中,无法访问子类中特有的方法和属性,因此需要在子类中重写 Shape 类中声明的抽象方法。
以下是修改后的代码:
```
import com.example.shapes.*;
public class Test {
public static void main(String[] args) {
Shape sanjiaoxing = new Triangle(3, 4, 5);
Shape juxing = new Rectangle(6, 7);
Shape yuan = new Circle(2);
sanjiaoxing.zhouchang();
sanjiaoxing.mianji();
juxing.zhouchang();
juxing.mianji();
yuan.zhouchang();
yuan.mianji();
}
}
```
注意,这里假设三个子类 Triangle、Rectangle、Circle 的构造方法都接收对应的参数。如果子类没有这样的构造方法,则需要在子类中添加对应的构造方法。
阅读全文