在阅读JLS规范的接口时,我发现了以下短语:
如果接口没有直接的超级接口,则接口隐式声明具有签名s的公共抽象成员方法m,返回类型r,并抛出与每个带有签名s的公共实例方法m对应的子句t、返回类型r和抛出在对象中声明的子句t,除非接口显式声明具有相同签名、相同返回类型和兼容的抛出子句。
因此,我的问题是,当我们实现一个接口时,为什么我们不被迫覆盖在Object类中声明的隐式方法,即使它们在接口中被隐式定义为抽象。希望我做得对。
谢谢。
发布于 2014-06-29 02:54:42
所有类都隐式extend Object,无论是直接还是通过某种超类链。因此,您不必显式覆盖接口中声明的隐式方法,因为您继承了来自Object的实现。
发布于 2014-06-29 05:04:02
接口的目的是迫使您实现某种方法。所有扩展对象的原因是我们希望有某种方法来处理与实现无关的所有类。没有理由让每个类实现类似getClass()这样的东西,因为行为总是相同的。
https://stackoverflow.com/questions/24472746
复制相似问题