0

我在抽象类中有一个方法,可以在扩展类中覆盖或不覆盖。我想调用原始(未覆盖)方法。如何参考?例子:

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

4

1 回答 1

2

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

您不能从子类外部执行此操作。从子类本身,您可以调用

super.my_method();

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

于 2014-10-30T14:28:41.983 回答