如果不调用类抽象,我们可以从接口实现很少(不是全部)方法吗?

时间:2013-03-18 06:07:13

标签: java abstract-class

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

简而言之,没有一种方法可以不声明在您实现的接口中定义的方法。但是有很多方法,不管是非正式的。

答案 2 :(得分:0)

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