我遇到了这篇文章(答案之一)中完美描述的情况:is it possible to overload a final method
我的问题是是否有一种方法可以执行派生类方法,或者其他方法...这对我的项目有很大帮助,避免重复代码仅用于强制转换并在方法内执行相同的操作(这些操作是许多)。
我关心的只是将代码保留在一个位置以便维护和调试,我自己找不到办法。 提前致谢。
class Base {
public final doSomething(Object o) {
System.out.println("Object");
}
}
class Derived extends Base {
public doSomething(Integer i) {
System.out.println("Int");
}
}
public static void main(String[] args) {
Base b = new Base();
Base d = new Derived();
b.doSomething(new Integer(0));
d.doSomething(new Integer(0));
}
最佳答案
调用子类中重载的方法的唯一方法是在子类类型的引用上调用它。你需要一个 Actor 阵容
((Derived) d).doSomething(new Integer(0));
这可能会导致 ClassCastException
或在适当类型的变量上调用它
Derived d = new Derived();
d.doSomething(new Integer(0));
关于java - 使用派生参数重载派生类中的 final方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537762/