java CircleObject不是抽象的,并且不会覆盖图中的抽象方法
编译下面的代码时,出现以下错误:
Abstrct.java:7: error: CircleObject is not abstract and does not override abstract method changePosition(int,int) in Figure
class CircleObject extends Figure
^
Abstrct.java:14: error: Kd is not abstract and does not override abstract method draw() in Figure
class Kd extends Figure
^
2 errors
使用
abstract class Figure {
int x, y;
abstract void changePosition(int newX, int newY);
abstract void draw();
}
class CircleObject extends Figure {
void draw() {
System.out.println("Draw method called");
}
}
class Kd extends Figure {
void changePosition(int newX, int newY) {
System.out.println("Change Position method called");
}
}
class Abstrct {
public static void main(String args[]) {
Figure q = new CircleObject();
q.draw();
Figure p = new Kd();
p.changePosition(2, 4);
}
}
# 1 楼答案
当您将一个类定义为抽象类时,扩展它的所有类都需要实现所有方法
# 2 楼答案
扩展抽象类的类要么实现其父类的所有抽象方法,要么本身是抽象的
所以CircleObject类也必须实现changePosition(),或者本身就是一个抽象类
Kd类也是如此