我收到以下错误。请帮忙
错误:方法没有重写或实现父类(super class)型的方法
class Point2D {
double x;
double y;
public double getX() {
return x;
}
public double getY() {
return y;
}
public Point2D(double x, double y) {
this.x = x;
this.y = y;
}
public double dist2D(Point2D p) {
x = (int) Math.ceil(Math.sqrt(Math.pow((p.getX() - x), 2) + Math.pow((p.getY() - y), 2)));
return x;
}
public static void printDistance(Double d) {
System.out.println("2D distance =" + d);
}
}
class Point3D extends Point2D {
double z;
public double getZ() {
return z;
}
@Override
public static void printDistance(Double d) {
System.out.println("3D distance =" + d);
}
public Point3D(double x, double y, double z) {
super(x, y);
this.z = z;
}
public double dist3D(Point3D p) {
return Math.ceil(Math.sqrt(Math.pow((p.getX() - x), 2) + Math.pow((p.getY() - y), 2) + +Math.pow((p.getZ() - z), 2)));
}
}
public class Solution {
public static void main(String[] args) {
Point3D p1 = new Point3D(1, 2, 3);
Point3D p2 = new Point3D(4, 5, 6);
double d2 = p1.dist2D(p2);
double d3 = p1.dist3D(p2);
Point2D p = new Point2D(0, 0);
p.printDistance(d2);
p = p1;
p.printDistance(d3);
}
}
预期输出:
二维距离 = 5
3D 距离 = 6
错误:方法没有重写或实现父类(super class)型的方法
请告诉我更多信息
最佳答案
静态方法不能被覆盖,尽管它们可以被重载。 如果删除注释 @Override 并使用类 Point3D 调用该方法,则代码将起作用。
关于java - 尝试实现多态但错误: method does not override or implement a method from a supertype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59365823/