Java 使用派生参数重载派生类中的final方法
我陷入了这篇文章(答案之一)中完美描述的情况: 我的问题是,是否有一种执行派生类方法的方法,或者另一种方法。。。在我的项目中,避免重复代码对于方法内部的强制转换和执行相同的操作(很多)会有很大帮助 我关心的只是将代码保存在一个位置以便维护和调试,我自己找不到方法。 提前谢谢Java 使用派生参数重载派生类中的final方法,java,Java,我陷入了这篇文章(答案之一)中完美描述的情况: 我的问题是,是否有一种执行派生类方法的方法,或者另一种方法。。。在我的项目中,避免重复代码对于方法内部的强制转换和执行相同的操作(很多)会有很大帮助 我关心的只是将代码保存在一个位置以便维护和调试,我自己找不到方法。 提前谢谢 class Base { public final doSomething(Object o) { System.out.println("Object"); } } class Derived exten
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));
}
调用子类中重载的方法的唯一方法是在子类类型的引用上调用它。你需要一个演员
((Derived) d).doSomething(new Integer(0));
这可能会导致ClassCastException
或对适当类型的变量调用它
Derived d = new Derived();
d.doSomething(new Integer(0));
调用子类中重载的方法的唯一方法是在子类类型的引用上调用它。你需要一个演员
((Derived) d).doSomething(new Integer(0));
这可能会导致ClassCastException
或对适当类型的变量调用它
Derived d = new Derived();
d.doSomething(new Integer(0));
调用子类中重载的方法的唯一方法是在子类类型的引用上调用它。你需要一个演员
((Derived) d).doSomething(new Integer(0));
这可能会导致ClassCastException
或对适当类型的变量调用它
Derived d = new Derived();
d.doSomething(new Integer(0));
调用子类中重载的方法的唯一方法是在子类类型的引用上调用它。你需要一个演员
((Derived) d).doSomething(new Integer(0));
这可能会导致ClassCastException
或对适当类型的变量调用它
Derived d = new Derived();
d.doSomething(new Integer(0));
为什么你的基本方法是最终的?听起来你想覆盖它。简单的回答是,我不能控制代码的这一部分。原因是它内部有一些操作,如果要覆盖它,就不能忽略这些操作。。但这不是我的电话..为什么你的基本方法是final?听起来你想覆盖它。简单的回答是,我不能控制代码的这一部分。原因是它内部有一些操作,如果要覆盖它,就不能忽略这些操作。。但这不是我的电话..为什么你的基本方法是final?听起来你想覆盖它。简单的回答是,我不能控制代码的这一部分。原因是它内部有一些操作,如果要覆盖它,就不能忽略这些操作。。但这不是我的电话..为什么你的基本方法是final?听起来你想覆盖它。简单的回答是,我不能控制代码的这一部分。原因是它内部有一些操作,如果要覆盖它,就不能忽略这些操作。。但这不是我的决定……我就是这么想的,如果没有办法,那就没有了。不管怎样,谢谢你的帮助。这就是我想的,如果没有办法,也没有办法。不管怎样,谢谢你的帮助。这就是我想的,如果没有办法,也没有办法。不管怎样,谢谢你的帮助。这就是我想的,如果没有办法,也没有办法。无论如何,谢谢你的帮助。