Jok*_*ker 2 java abstract-class interface java-8
以下代码编译得非常好。
据我了解,这不应该是因为Class C实施interface I
因为抽象类也无法编译。
interface I {
public String toString();
}
class C implements I {
}
Run Code Online (Sandbox Code Playgroud)
抽象类未编译
abstract class MyAbstractClass {
public abstract String toString();
}
public class MyClass extends MyAbstractClass {
}
Run Code Online (Sandbox Code Playgroud)
请帮助我理解这种行为为什么抽象没有编译而接口呢?
每个类都隐式地扩展java.lang.Object并java.lang.Object实现了该toString()方法。该实现满足了接口的契约,因此不需要您的类提供自己的toString().
抽象类的编译失败的原因是因为您显式地将toString()方法定义为abstract,从而表明具体的扩展类被迫提供自己的实现。
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |