【发布时间】:2015-06-05 17:30:33
【问题描述】:
我有 3 个不同的班级,
public class Parent {
public void add(double a, double b) {
System.out.println("Parent class add(double double)");
}
public class Child extends Parent {
public void add(long a, long b) {
System.out.println("Child class add(long long)");
}
}
public class Test {
public static void main(String arr[]) {
Parent parent = new Child();
parent.add((long)System.currentTimeMillis(), (long)System.currentTimeMillis());
}
}
输出应该是 Child class add(long long),但不是这个, 它显示父类添加(双双)
但是当我在父类中添加子类的 add 方法时,它是 显示正确的输出。谁能告诉我原因。
【问题讨论】:
-
我建议每次重写方法时都使用
@Override -
@Override 是一个很好的实践和习惯,但它不适用于这种情况,因为代码实际上并没有被覆盖。
标签: java polymorphism overloading overriding