抱歉把死人带回来。但是我仍然不清楚这部分规范的内容。
如果接口没有直接的超接口,则接口隐式声明一个公共抽象成员方法 m,其签名为 s,返回类型为 r,并且 throws 子句 t 对应于每个签名为 s、返回类型为 r 和 throws 子句的公共实例方法 m在 Object 中声明,除非接口显式声明了具有相同签名、相同返回类型和兼容 throws 子句的方法。如果在 Object 中将 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();
}
}
还。请确认是否存在接口层次结构,然后它们都将获得这些抽象方法。