-6

假设我们有一个包含 10 个方法的接口,但在一个类中只实现了其中的 5 个。那么那个类应该是抽象的。有没有办法实现这样一个类而不使其抽象?

4

3 回答 3

1

不可以。具有不完整实现的类必须声明为抽象类。它不能直接实例化,但它可以作为子类构建的公共基础。

所有这一切的重点是编译器可以确保当在对象上调用方法时(由接口定义),该方法确实存在。这是 Java 强类型方法的一部分。

Java 确实有“可选方法”的概念,但这是相当非正式的:您必须提供一个抛出 UnsupportedOperationException 的虚拟实现。

于 2013-03-18T06:10:17.073 回答
1

如果一个类实现了一个接口,它保证接口中的所有方法都会被实现。也就是说,如果你不想定义方法的内容,你总是可以抛出一个 UnsupportedOperationException:

public void cats(){
   throw new UnsupportedOperationException();
}

简而言之,不声明在您实现的接口中定义的方法是没有办法的。但是有一些方法可以解决它,无论这些方法可能是多么非正式。

于 2013-03-18T06:11:06.757 回答
0

您必须实现所有接口方法。如果您的类是抽象的,那么创建具体子类的人必须实现这些方法。

于 2013-03-18T06:11:17.937 回答