从抽象类中的另一个方法中调用与真实类中同名的方法

摩西·塔赫里(Mohse taheri)

我有一个抽象类和一个扩展它的类,两个类中都有一个同名的方法。我想在另一个抽象类方法中调用抽象类中的方法。

Controller.java

public abstract class Controller {

    public Result delete(Long id) {
        return this.delete(id, true);
    }
    public Result delete(Long id, boolean useTransaction) {
        // do something and return result
    }
}

FileGroup.java

public class FileGroup extends Controller {

    public Result delete(Long id, boolean central) {
        // do something
        return super.delete(id);
    }
}

super.delete打电话Controller.delete,但this.delete(id, true)电话deleteFileGroup,而不是调用deleteController,这是造成递归无限循环和堆栈溢出。

Aioobe

[...],但this.delete(id, true)呼叫inFileGroup而不是呼叫in Controller

是的,所有方法都是Java中的虚拟方法,无法避免这种情况。但是,您可以通过以下方法创建一个(不可覆盖的)帮助程序方法来解决此问题Controller

public abstract class Controller {

    private Result deleteHelper(Long id, boolean useTransaction) {
        // do something and return result
    }

    public Result delete(Long id) {
        return deleteHelper(id, true);
    }
    public Result delete(Long id, boolean useTransaction) {
        return deleteHelper(id, useTransaction);
    }
}

这样可以避免Controller.delete将调用委托给子类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#:调用通过另一个抽象类实现的抽象类方法

来自分类Dev

如何在另一个类中调用抽象的内部类方法?

来自分类Dev

在另一个viewController中调用类方法

来自分类Dev

Repaint()方法在另一个类中调用

来自分类Dev

在PHP的另一个类中调用方法

来自分类Dev

从UIButton中的另一个类调用方法

来自分类Dev

为什么Resharper宁愿不隐藏另一个抽象类中的抽象类的属性?

来自分类Dev

从Python 2.7中的另一个类方法调用一个类方法

来自分类Dev

在Java中3个类中的另一个类中调用方法

来自分类Dev

如何从另一个类中迅速调用另一个方法?

来自分类Dev

如何在另一个类中调用一个类的main()方法?

来自分类Dev

从另一个类中的一个类调用方法

来自分类Dev

从另一个类中的一个类调用方法

来自分类Dev

如何调用抽象类中的方法

来自分类Dev

为什么在扩展的抽象类中需要另一个构造函数?

来自分类Dev

在C ++中使用另一个头文件中的抽象类

来自分类Dev

另一个类的模板成员函数中的模板类中的调用方法

来自分类Dev

在python的同一类中的另一个方法中调用一个类的方法

来自分类Dev

使用另一个对象的方法实例化一个抽象类?

来自分类Dev

使用另一个对象的方法实例化一个抽象类?

来自分类Dev

Swift:创建一个按钮来调用另一个类中的方法

来自分类Dev

在扩展类的方法之后调用抽象类中的方法?

来自分类Dev

如何知道在odoo中从哪个类调用了另一个类的方法

来自分类Dev

如何在我的主类的另一个类中调用方法?

来自分类Dev

无法在另一个类中调用类方法

来自分类Dev

来自新类中另一个类的调用方法-PHP

来自分类Dev

您如何在一个类中从另一个类中调用方法?

来自分类Dev

从同一类中的另一个方法调用方法时出错

来自分类Dev

从CSHTML文件中调用另一个类中的方法

Related 相关文章

  1. 1

    C#:调用通过另一个抽象类实现的抽象类方法

  2. 2

    如何在另一个类中调用抽象的内部类方法?

  3. 3

    在另一个viewController中调用类方法

  4. 4

    Repaint()方法在另一个类中调用

  5. 5

    在PHP的另一个类中调用方法

  6. 6

    从UIButton中的另一个类调用方法

  7. 7

    为什么Resharper宁愿不隐藏另一个抽象类中的抽象类的属性?

  8. 8

    从Python 2.7中的另一个类方法调用一个类方法

  9. 9

    在Java中3个类中的另一个类中调用方法

  10. 10

    如何从另一个类中迅速调用另一个方法?

  11. 11

    如何在另一个类中调用一个类的main()方法?

  12. 12

    从另一个类中的一个类调用方法

  13. 13

    从另一个类中的一个类调用方法

  14. 14

    如何调用抽象类中的方法

  15. 15

    为什么在扩展的抽象类中需要另一个构造函数?

  16. 16

    在C ++中使用另一个头文件中的抽象类

  17. 17

    另一个类的模板成员函数中的模板类中的调用方法

  18. 18

    在python的同一类中的另一个方法中调用一个类的方法

  19. 19

    使用另一个对象的方法实例化一个抽象类?

  20. 20

    使用另一个对象的方法实例化一个抽象类?

  21. 21

    Swift:创建一个按钮来调用另一个类中的方法

  22. 22

    在扩展类的方法之后调用抽象类中的方法?

  23. 23

    如何知道在odoo中从哪个类调用了另一个类的方法

  24. 24

    如何在我的主类的另一个类中调用方法?

  25. 25

    无法在另一个类中调用类方法

  26. 26

    来自新类中另一个类的调用方法-PHP

  27. 27

    您如何在一个类中从另一个类中调用方法?

  28. 28

    从同一类中的另一个方法调用方法时出错

  29. 29

    从CSHTML文件中调用另一个类中的方法

热门标签

归档