【发布时间】:2012-09-17 09:05:54
【问题描述】:
很抱歉带回dead。但是我还是不太清楚这部分规范的内容。
如果一个接口没有直接的超接口,则该接口 隐式声明一个带有签名的公共抽象成员方法 m s,返回类型 r,以及每个 public 对应的 throws 子句 t 具有签名 s、返回类型 r 和 throws 子句 t 的实例方法 m 在 Object 中声明,除非方法具有相同的签名,相同 返回类型,并且兼容的 throws 子句由 界面。如果接口显式,则为编译时错误 在 m 被声明为 final 的情况下声明这样的方法 m 在对象中。
给定
interface Testing
{
void test();
}
public class Test{
public static void main(String[] args) {
Testing t = new Testing(){
@Override
public void test(){
}
};
t.test();
t.toString();
}
}
现在,正如规范所述,上述内容将更改为
interface Testing
{
void test();
String toString();
//other non-final methods of Object
}
public class Test{
public static void main(String[] args) {
Testing t = new Testing(){
@Override
public void test(){
}
};
t.test();
t.toString();
}
}
还有。请确认是否存在接口层次结构,然后它们都将获得这些抽象方法。
【问题讨论】:
-
您的问题到底是什么?每个类都继承 Object 的方法,而不管实现的接口如何
-
我的问题是——“我的理解正确吗?”还有“这有什么必要?”
-
是的,您的理解是正确的。只要您在接口中有显式或隐式的方法。对于使用它们的其他类或接口无关紧要
标签: java