当前位置: 首页 > 面试题库 >

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

嵇浩淼
2023-03-14
问题内容

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

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

问题答案:

您不能使用private abstractJava中的方法。

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

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

这是一个编译时错误,如果包含该关键字的方法声明中abstract还包含关键字的任意一个privatestaticfinalnativestrictfp,或synchronized

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

资源:

  • JLS-8.4.3。方法修饰符
  • JLS-8.4.3.1。abstract方法


 类似资料:
  • 我最近刚刚开始学习如何使用swing,并且一直在遵循我在网上找到的教程。我基本上遵循了“逐字逐句”的教程,但我发现了一个错误: 记分板不是抽象的,并且不会覆盖ActionListener中的抽象方法actionPerformed(ActionEvent) 所以我的问题是,如果类不是抽象的,我如何将ActionListener实现到我的类(ScoreBoard)中? 下面是整个代码:(因为我不知道问

  • 我想强制我的抽象类孩子实现我的抽象方法为私有。这可能吗?

  • 问题内容: 我想这样做,但我不能。这是我的情况和理性。我有一个用于测试用例的抽象类,该类具有一个称为test()的抽象方法。test()方法由子类定义;它应使用特定应用程序的逻辑来实现,例如。我不希望直接调用test()方法,我希望超类调用test()方法,而子类可以调用调用此方法的方法(并且还可以进行其他工作,例如设置当前例如在执行测试之前的日期时间)。示例代码: 然后扩展这个。 然后调用它。

  • 假设我有一个叫做book的类,它是抽象的,有一个私有变量price,它的getter方法也是抽象的。 现在让我们假设我有一个旧的Book类,它继承了Book的所有属性,但也有一个与之相关联的年龄。另外,我希望这个类从它的父类重写getPrice方法。这就是我陷入困境的地方,因为price变量是私有的,而父类有一个抽象的getter方法。 谢谢。

  •   抽象用于向用户隐藏函数的内部功能。他们可以与函数交互并生成结果,但不知道结果是如何生成的。   简单来说,抽象就是用来对用户隐藏不相关的数据,以降低程序的复杂度。 在 Python 中借助 ABC 模块,我们可以实现抽象。   抽象类也可以作为其他类的基石,因为你不能为抽象类创建对象,所以访问元素的唯一方法是使用继承。

  • 问题内容: 如何在Go中实现抽象类?由于Go不允许我们在接口中包含字段,因此这将是一个无状态的对象。因此,换句话说,Go中的方法是否可以具有某种默认实现? 考虑一个例子: 由于无法将接口用作接收器,因此无法编译。 实际上,我已经回答了我的问题(请参见下面的答案)。但是,这是实现这种逻辑的惯用方式吗?除了语言的简单性之外,还有什么理由不使用默认实现吗? 问题答案: 一个简单的解决方案是移至参数列表(