2
A
回答
4
我试图解释你的图表中的代码如下:
interface A extends B, C, D { }
interface B { }
interface C { }
interface D extends F{ }
interface E extends F{ }
interface F extends A{ }
,编译器失败,错误:
java: cyclic inheritance involving A
所以,正如所料,循环继承是不允许的。
错误消失如果F
确实不是延伸A
。
2
它确实产生一个错误,你尝试过吗?
interface A extends D {} // error on this line: The hierarchy of the type A is inconsistent
interface D extends F {} // error on this line: The hierarchy of the type D is inconsistent
interface F extends A {} // error on this line: Cycle detected: a cycle exists in the type hierarchy between F and A
0
错误是在d扩展F和E扩展F和F延伸的... 由于Java不支持多重继承...这就是为什么接口被引入
+1
它确实支持多接口继承。问题在于循环。 –
1
我看到下面的疯狂用法:
interface I {
static final I CONSTANT = new C();
...
}
class C implements I {
}
这个工作的原因是.class(就像一个二进制.obj)包含其导入的符号信息。所以.java可以被编译成.class。然后可以完成与其他.class文件的链接。
出于同样的原因(松散链接)执行可能会失败,当使用不同版本的jar进行编译而不是运行时。
虽然有些编译器可能会遇到特定的周期。
一个另外虽然
如果一个接口使用常量从另一个接口,在编译时这些常量存储在.class文件,并且在效果消失的进口。在那种情况下,至少有一个编译器,它不检测依赖关系,并且周期可能被破坏。这甚至可能导致错误的,陈旧的常量;反模式。
相关问题
- 1. PLSQL循环层次结构
- 2. Cytoscape js中的循环层次结构?
- 3. Sql层次结构循环查询
- 4. 继承中的循环层次结构
- 5. net.sf.json.JSONException:在层次结构中有一个循环
- 6. 在整个未知层次结构中循环R
- 7. 在循环中创建PHP数组的层次结构
- 8. 层次结构
- 9. 层次结构在SQL Server - 多层次
- 10. 在递增结构值每次循环
- 11. Java中的循环继承层次结构
- 12. 如何防止层次结构中的循环引用?
- 13. radgridview层次结构
- 14. UIView层次结构
- 15. 类层次结构
- 16. 类层次结构
- 17. 平面数据的层次结构
- 18. WordPress的页面层次结构
- 19. 平面列表到层次结构
- 20. 单注页面层次结构
- 21. c#构建层次结构
- 22. PHP类层次结构 - 层次结构中的最高类
- 23. Java:如何在界面层次结构中返回声明的类型?
- 24. 在javascript中构建层次结构树
- 25. 使用XSLT将平面XML结构更改为层次结构
- 26. 如何在循环引用的层次结构中加载实例?
- 27. Apache Solr中的方面字段(不是层次方面)的层次结构?
- 28. 扩展类层次结构
- 29. 组织SQL层次结构
- 30. Drupal节点层次结构
箭头表示什么? – FrobberOfBits
箭头的方向是指子接口还是超接口? –
箭头A-> B表示A扩展B – user3520274