假设我们有一个包含10个方法的接口,但只在类中实现了5个。那个班应该是抽象的。有没有办法在没有抽象的情况下实现这样的类?
答案 0 :(得分:1)
没有。必须将具有不完整实现的类声明为abstract。它不能直接实例化,但它可以作为子类构建的共同基础。
所有这一点的重点在于编译器可以确保在对象上调用方法(由接口定义)时,该方法实际存在。这是Java强类型方法的一部分。
Java确实有“可选方法”的概念,但这是非正式的:你必须提供一个抛出UnsupportedOperationException的虚拟实现。
答案 1 :(得分:1)
如果一个类实现了一个接口,那么保证将实现接口中的所有方法。也就是说,如果你不想定义方法的内容,你总是可以抛出UnsupportedOperationException:
public void cats(){
throw new UnsupportedOperationException();
}
简而言之,没有一种方法可以不声明在您实现的接口中定义的方法。但是有很多方法,不管是非正式的。
答案 2 :(得分:0)
您必须实现所有接口方法。如果您的类是抽象的,那么创建具体子类的人必须实现这些方法。