我可以在Java中不使用abstract关键字来定义抽象方法吗?

时间:2018-01-17 19:58:10

标签: java inheritance syntax

我知道我们只能在抽象类中定义抽象方法。我也知道我们不能自己实例化抽象类,它必须继承(扩展)。我知道抽象方法强制子类为该方法提供实现。

我的问题是,只有在没有“abstract”关键字的情况下才能定义该抽象方法?类似的东西:

public abstract Animal
{ 
    public void makeNoise();
}

3 个答案:

答案 0 :(得分:2)

您可以创建interface,这是一组抽象方法,而不使用abstract关键字。如果您创建abstract class,则每个抽象方法都应该包含abstract关键字。

查看documentation了解详情。

答案 1 :(得分:1)

我的问题是,只有在没有"抽象"关键字?

不,你不能上课。这只能在接口上使用。

答案 2 :(得分:1)

  

我的问题是,只有我可以定义没有的抽象方法   "抽象"关键字?

你无法用这种方式定义抽象方法 抽象类可以包含方法的实现。因为那样,你必须标记哪个方法是抽象的,哪个不是。

如果您创建Animal类

public abstract class Animal {
    public void makeNoise();
}

Eclipse会建议您添加body或将方法更改为abstract。