下面给出的以下示例我有2个接口a和b:
interface a { void x();}
interface b extends a {void y();}
现在我将上面的接口实现为类i和j。
class i implements a{
void x(){
//Some code;
}
}
class j extends i implements b{
void y(){
//Some code;
}
}
编译类j时,我收到错误"循环检测到:类型b无法扩展/实现自身或其自己的成员类型之一"。任何人都可以帮我理解这个问题。
答案 0 :(得分:0)
在我看来,错误是由你声明类“j”引起的,通过扩展“i”同时还实现“b”,它们都是接口“a”的子代。
你的制作效果是这样的: “j extends i”通过继承使“j”成为“a”的实例; 当b是“a”的实例时,“j implements b”通过继承使“b”成为“b”的实例。 因此你的周期。