102 java oop inheritance interface
我的意思是:
interface B {...}
interface A extends B {...} // allowed
interface A implements B {...} // not allowed
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索它,我发现了这个:
implements
表示定义接口方法的实现.但是接口没有实现,所以这是不可能的.
但是,interface是100%抽象类,抽象类可以实现接口(100%抽象类)而不实现其方法.定义为"界面"时有什么问题?
详细说明
interface A {
void methodA();
}
abstract class B implements A {} // we may not implement methodA() but allowed
class C extends B {
void methodA(){}
}
interface B implements A {} // not allowed.
//however, interface B = %100 abstract class B
Run Code Online (Sandbox Code Playgroud)
Jig*_*shi 107
implements
意味着实现,何时interface
声明只是为了提供interface
不实现.
100%abstract class
在功能上等同于a,interface
但如果你愿意,它也可以有实现(在这种情况下它不会保持100%abstract
),所以从JVM的角度来看它们是不同的东西.
此外,100%抽象类中的成员变量可以具有任何访问限定符,其中在接口中它们是隐式的public static final
.
Col*_*ert 24
implements
表示将为abstract
方法定义行为(显然除了抽象类),您定义实现.
extends
表示行为是继承的.
使用接口可以说一个接口应该具有与另一个接口相同的行为,甚至没有实际的实现.这就是为什么它对extends
另一个接口的接口更有意义而不是实现它.
另外,请记住,即使一个abstract
类可以定义abstract
方法(接口的合理方式),它仍然是一个类,仍然必须继承(扩展)而不是实现.