我在抽象类中有一个方法,可以在扩展类中重写或不重写。我想调用原始(不是覆盖)方法。怎么参考呢?例如:
public abstract class A{
protected MyResult my_method(){
MyResult myResult;
...
... // Default implementation
...
return myResult;
}
...
private void xy(){
// I'd like to call my_method here
if(!my_method().test()){
// The function is not implemented well, I want ot use the original (abstract) method
...
... log a message for programmer
...
this::A.my_method(); // I need something like this
}
}
}
我不需要任何建议如何以不同的方式做到这一点。我只询问是否存在用于引用原始类或远程超类中的方法或属性的java语法。
答案 0 :(得分:2)
我想调用原始(不是覆盖)方法。
您无法从外部子类中执行此操作。从子类本身,您可以调用
super.my_method();
总是会调用超类实现,即使它已在此类中被覆盖。但是为了能够在子类之外做到这一点会减少封装。