我编了一个java程序,是用Point3D继承Point2D,但是编译后总是提示找不到符号,把箭头指向有Point3D的一行

2024-11-15 15:22:35
推荐回答(3个)
回答(1):

你错误的原因是
当你New一个对象的时候,classLoader(类加载器)会先加载你父类的构造方法,如果在子类中不指定构造方法,就会默认调用无参的构造方法,但是你的父类point2D写了一个构造方法,系统就不会给你生成默认的构造方法,所以classLoader调无所调。。。

以后有问题多多交流,兄弟给分吧- -!
public class Point3D extends Point2D {
int z;

public Point3D(int a, int b, int c) {
super(a, b);
z = c;
}

Point3D(Point2D p, int c) {
x = p.x;
y = p.y;
z = c;
}

public void offset(int a, int b, int c) {
x = x + a;
y = y + b;
z = z + c;
}

}

class Point2D {
public int x;
public int y;

public Point2D() {
}

Point2D(int a, int b) {
x = a;
y = b;
}

public void offset(int a, int b) {
x = x + a;
y = y + b;
}
}

回答(2):

首先,告诉你什么是继承,必须要有一个抽象的类,
然后子类才能继承。
你的这个point2D是抽象类吗?
既然不是如何去继承呢?
太粗心了。

回答(3):

晕了,谁说不是抽象就不能继承啊?不要误导别人好不
问题很好解决,在父类里,建一个无参数的构造函数就好了