繁体   English   中英

覆盖对象类方法中的交互与抽象类

[英]Interafce vs abstract class in overriding object class methods

以下代码编译得非常好。

据我了解,这不应该是因为Class C实现了interface I

因为抽象类也无法编译。

interface I {
    public String toString();
}

class C implements I {

}

抽象类未编译

abstract class MyAbstractClass {
    public abstract String toString();
}

public class MyClass extends MyAbstractClass {
}

请帮助我理解这种行为为什么抽象没有编译而接口呢?

每个类都隐式地扩展了java.lang.Object ,而java.lang.Object实现了toString()方法。 该实现满足了接口的契约,因此不需要您的类提供自己的toString()

抽象类的编译失败的原因是因为您显式地将toString()方法定义为abstract ,从而表明具体的扩展类被迫提供自己的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM