如何在抽象类中执行java方法?

时间:2014-10-30 14:25:13

标签: java class reference this ancestor

我在抽象类中有一个方法,可以在扩展类中重写或不重写。我想调用原始(不是覆盖)方法。怎么参考呢?例如:

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语法。

1 个答案:

答案 0 :(得分:2)

  

我想调用原始(不是覆盖)方法。

您无法从外部子类中执行此操作。从子类本身,您可以调用

super.my_method();

总是会调用超类实现,即使它已在此类中被覆盖。但是为了能够在子类之外做到这一点会减少封装。