有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在抽象类中有一个方法,可以在扩展类中重写,也可以不重写。我想调用原始(而不是重写)方法。如何引用它?例如:

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) 个答案

  1. # 1 楼答案

    I'd like to call the original (not overriden) method.

    你不能从子类之外的中这样做。从子类本身,可以调用

    super.my_method();
    

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