Java:如何实现私有抽象方法?

时间:2010-10-03 21:55:24

标签: java

是否可以在Java中定义私有抽象类? Java开发人员如何编写如下所示的构造?

public abstract class MyCommand {
    public void execute()
    {
        if (areRequirementsFulfilled())
        {
            executeInternal();
        }
    }
    private abstract void executeInternal();
    private abstract boolean areRequirementsFulfilled();
}

2 个答案:

答案 0 :(得分:47)

您不能在Java中使用private abstract方法。

当方法为private时,子类无法访问它,因此它们无法覆盖它。

如果您想要类似的行为,则需要protected abstract方法。

  

如果包含关键字abstract的方法声明还包含关键字privatestaticfinal,{{}中的任何一个,那么这是一个编译时错误1}},nativestrictfp

并且

  

子类不可能实现synchronized方法,因为子类不会继承private abstract方法;因此永远不能使用这种方法。


资源:

答案 1 :(得分:6)

那将是protected而不是private。这意味着只有扩展MyCommand的类才能访问这两种方法。 (所有类都来自同一个包,但这只是一个小问题。)