如何在抽象类中执行java方法?
Posted
技术标签:
【中文标题】如何在抽象类中执行java方法?【英文标题】:How to execute java method in abstract class? 【发布时间】:2014-10-30 14:25:13 【问题描述】:我在抽象类中有一个方法,可以在扩展类中覆盖或不覆盖。我想调用原始(未覆盖)方法。如何参考?示例:
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】:我想调用原始(未覆盖)方法。
你不能在子类外部做到这一点。从子类本身,你可以调用
super.my_method();
它将始终调用超类实现,即使它已在此类中被覆盖。但是能够在子类之外执行此操作会减少封装。
【讨论】:
您的建议可用于扩展 A 的 B 类。我需要从用 A 类编写的方法调用它。 @Hink:你不能那样做。如果你想从A类调用A类中的代码,把它放在一个final方法中,避免子类能够覆盖它。 好吧,我相信你,我必须和它和解。以上是关于如何在抽象类中执行java方法?的主要内容,如果未能解决你的问题,请参考以下文章