【发布时间】:2014-03-18 18:22:38
【问题描述】:
问题:当一个类指定它实现了一个接口,但没有提供接口中所有方法的声明时会发生什么?
【问题讨论】:
-
你尝试的时候发生了什么?
标签: java interface polymorphism abstract
问题:当一个类指定它实现了一个接口,但没有提供接口中所有方法的声明时会发生什么?
【问题讨论】:
标签: java interface polymorphism abstract
如果类不是抽象的,则编译错误。如果类是抽象的,可以不定义声明的接口的一些方法。缺少的方法必须在派生的非抽象类中定义在末尾。
【讨论】:
您必须声明该接口继承的所有方法,否则它将无法编译。
例子:
interface SomeInterface {
public void methodOne();
public void methodOne();
public void methodOne();
}
还有:
class SomeClass implements SomeInterface {
//this wont complie
}
但如果该类是抽象类,它可以声明从该接口或其中一些接口继承的方法,
例子:
interface SomeInterface {
public void methodOne();
public void methodOne();
public void methodOne();
}
还有:
abstract class SomeClass implements SomeInterface {
//this will compile
}
【讨论】:
除非你的类是抽象的,否则它根本不会编译。
例如编译器说不!
【讨论】:
它将无法编译。 “如果您的类声称实现了一个接口,则该接口定义的所有方法都必须出现在其源代码中,然后该类才能成功编译。”来自Object-Oriented Programming Concepts
【讨论】:
编译错误将生成声明以覆盖抽象方法。 请记住,与抽象类不同,接口根本不能提供任何实现。这意味着,任何实现接口的类都必须提供所有方法的实现。
【讨论】: