假设有2个类实现相同的接口和从该接口的方法。如果我直接从界面调用方法,决定返回哪个实现(从第一个或第二个类)是什么?当两个类实现相同的接口
回答
你不直接从一个接口调用一个方法,而是在一个指向一个类的实例的引用上调用它。无论哪个类都决定调用哪个方法。
至少你定义了一个[匿名类](http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm)。 – 2013-04-09 16:14:45
@LuiggiMendoza我不知道你的意思。您仍然在这些对象上创建匿名类的实例并调用方法。 – 2013-04-09 16:16:27
对不起,我的意思是说你可以创建一个匿名类来定义接口的一个新的实现,以实现它的任何实际类。 – 2013-04-09 16:18:42
接口不能有方法的主体/定义。所有的方法都是抽象的。你不能定义方法体,因此你不能从接口调用任何方法。
您可以通过执行实现接口的具体类的构造函数来定义接口的实例。
Interface interface = new ConcreteClass();
package test;
public interface InterfaceX {
int doubleInt(int i);
}
package test;
public class ClassA implements InterfaceX{
@Override
public int doubleInt(int i) {
return i+i;
}
}
package test;
public class ClassB implements InterfaceX{
@Override
public int doubleInt(int i) {
return 2*i;
}
}
package test;
public class TestInterface {
public static void main(String... args) {
new TestInterface();
}
public TestInterface() {
InterfaceX i1 = new ClassA();
InterfaceX i2 = new ClassB();
System.out.println("i1 is class "+i1.getClass().getName());
System.out.println("i2 is class "+i2.getClass().getName());
}
}
- 1. 合并两个实现相同接口的类的列表
- 2. 类实现两个接口定义相同的方法
- 3. Java类中实现相同方法签名的两个接口
- 4. 哪个实现相同的接口
- 5. 两个会话Bean能否实现相同的远程接口?
- 6. 创建两个实现相同接口的bean
- 7. 为实现相同的接口
- 8. 创建实现相同的接口
- 9. 类可以实现两个接口,每个接口都包含相同的方法签名?说明。
- 10. 类设计:类实现接口实现另一个接口
- 11. 比较两个实现相同/相等接口的对象 - 设计帮助
- 12. 让两家工厂返回实现两个接口相同的对象
- 13. PHP - 无法实现相同的接口两次
- 14. 实现相同接口的接口内的内部类,我们通过这个实现了什么?
- 15. 是否有即使父类实现相同的接口实现子类中的接口任何好处
- 16. C#相当于创建实现接口的匿名类
- 17. 实现相同服务合同接口的多个WCF服务
- 18. Ninject绑定的所有类实现相同的接口
- 19. 两个工厂类,以产生不同的接口实例具有相同condtion
- 20. 如何注册实现相同接口的多种类型
- 21. 接口应该与实现它们的具体类相同吗?
- 22. 实现相同接口的java setVisible(true)类
- 23. 代码重构。类实现相同的接口
- 24. 2类实现相同的接口 - >抛出ClassCastException
- 25. 简单的喷油器依赖于两个实现相同接口的对象
- 26. 相同类型的相同类型的两个实例
- 27. 我们如何实现具有相同方法名称的两个接口?
- 28. 当你用相同的方法实现两个接口时,你怎么知道哪一个被调用?
- 29. 单元测试几个实现相同的特质/接口
- 30. 统一解析多个实现相同的接口
好了,你可以写一个示例代码,看看它自己。 – PermGenError 2013-04-09 16:09:46
我在工作。我没有时间。 :D我认为有人可以说一般规则 – Madrugada 2013-04-09 16:10:24
你是什么意思。除非指定具体类,否则如何实例化接口? – Patrick 2013-04-09 16:10:34