我看到一个代码,其中有两个接口有一些方法与两个方法具有相同的名称。然后有一个类实现了这些接口,我认为它不应该编译,因为方法名称不明确。为什么它工作正常。接口实现混乱?
Q
接口实现混乱?
2
A
回答
2
发生此问题的每种语言都会以不同的方式解决问题。在某些语言中,这可能是一个错误; C++就是这样。但是在Java中,只要这两种方法具有兼容的异常规范 - 即只要实际上可以实现满足两个接口的方法,那么语言规范就特别允许这样做。一种方法满足每个接口,并且一切都很好。询问该方法属于哪个接口是毫无意义的;它属于两者,或者属于无。
请注意,您可以通过方法x()
获得一个类,然后使用一个子类来扩展该类,该子类声明自己实现了一些包含方法x()
的接口;孩子会使用继承的方法自动满足接口,而接口本身并不知道接口方法。如您所见,Java接口纯粹是声明式的;他们并不关心方法来自哪里,只是所讨论的类包含它们。
我不会说PHP,但也许它是一样的,但我相信它在一些小细节上有所不同。
+0
感谢您的回答。 –
0
如果方法相同,方法名称中不会有歧义。
所以,从本质上讲,Java没有问题,因为实现类只应提供一个实现。
相关问题
- 1. 接口实现的混乱
- 2. 在实现用于编程皮质的usb接口时出现混乱m3
- 3. 混乱ServerSocket的(端口)
- 4. Python 2.7版进口混乱
- 5. 接口实现
- 6. 实现接口
- 7. 实现接口
- 8. 实现接口
- 9. 模板实例混乱
- 10. 对象实例混乱
- 11. 接口实现使得我的UML类图凌乱
- 12. 指针间接混乱
- 13. javax.sql.DataSource连接池混乱
- 14. 的std ::实验::可选<T>实现:Constexpr构造混乱
- 15. 实现和接口
- 16. 实现接口C#
- 17. 实现AIDL接口
- 18. Java接口实现
- 19. GetEnumerator接口实现
- 20. 实现Iterable接口
- 21. 实现IConvertible接口
- 22. 类设计:类实现接口实现另一个接口
- 23. 将显式接口实现重构隐式接口实现
- 24. 接口实现时不透露实现接口的类
- 25. 实现与接口集合的接口
- 26. 在接口中实现接口属性?
- 27. SOAP客户端端口混乱
- 28. 核心数据父子上下文实现混乱
- 29. 从界面实现通用方法而没有混乱?
- 30. 增强现实方位/标题/方位混乱。 (iphone ARKit代码)
Class1.Method,Class2.Method,这是他们如何不同。没有歧义。 – atoMerz
是关于PHP或Java的问题吗? – Mat
@Mat这个问题是通用的,我尝试了两种语言。所以我把它标记为开放以回应任何社区。 –