我想,当一个类实现一个接口,它是说,它“可以做”什么在interface.I定义我也下印象是“是”或符号“类型”是类层次结构,这意味着一类从超类继承。我的理解是否正确?通过实现一个接口,类是否成为该接口的“类型”?
0
A
回答
3
从标题的问题,我会说没有。
已经有答案说是通过阅读它指出了Java语言规范在使用的instanceof,但显示这一点。
两个参考类型,如果相同的运行时类型: 他们都是类或两种接口类型,是由同一个类加载器定义,并具有相同的二进制名称
而且一实现接口的类将不会收到接口的二进制名称。
2
是。这从使用instanceof
运营商是显而易见的:
interface I { } class A implements I { } ... static boolean isAnI(Object obj) { return (obj instanceof I); }
这里,呼吁isAnI(new A())
将返回true
。
编辑:理解题意后好转,我认为这归结为正式定义-A在Java中。维基百科有关一般OO定义的文章here。从这个基于继承层次的角度来看,我会将我的答案改为否,同意Farmor的答案。
1
我不能完全肯定我明白你的问题。但是,接口确实说明了类“可以做什么”,但是您也可以投射该接口的对象并运行接口的方法。工作中的多态性。
相关问题
- 1. 查明一个类型是否实现了通用接口
- 2. 类设计:类实现接口实现另一个接口
- 3. 对象的接口,但约束类型上实现该接口
- 4. C#如何检查一个类是否实现泛型接口?
- 5. 打开通用接口类型的开放实现不等于接口类型?
- 6. 你会为2个类实现一个类或2个接口的接口吗
- 7. 将接口实例分配给实现该接口的类
- 8. TypeScript - 检查类是否实现接口
- 9. 如何判断一个类是否是java接口的实现
- 10. 哪个接口一个类实现?
- 11. 是一个被认为是实现的超类的接口吗?
- 12. Golang检查接口类型是否为
- 13. 查询实现一个通用接口的类的泛型类型定义
- 14. 实施接口错误:类不实现接口成员
- 15. 找出一个泛型类型实现一个接口
- 16. Typescript类使用接口作为类型而不是实现
- 17. 如何从接口获得一个枚举到实现该接口的类?
- 18. 体验类实现一个接口
- 19. 类实现扩展另一个接口
- 20. 生成实现接口的JAXB类
- 21. JAXB生成的类实现接口
- 22. 确定类型实现的接口
- 23. 实现通用类的Ipaparable接口
- 24. 是否正在接口类中实现一个函数?
- 25. 获取类实现的通用接口的类型参数
- 26. 返回实现通用接口的类的类型
- 27. 实现接口向导 - 如何找到接口的“类型库”?
- 28. 实现不带接口类型参数的接口
- 29. 如何实现一个接口来处理类型转换类?
- 30. 确定一个类的超类是否实现了java中的某个接口
基于这里的文章:http://codeofdoom.com/wordpress/2009/02/12/learn-this-when-to-use-an-abstract-class-and-an-interface/。它说当一个类扩展一个抽象类时,它建立了“是A”关系,但是它与接口建立了“可以做”关系。如果抽象类和接口都建立“IS A”关系,那么接口的用法是什么?让我们不要进入多重继承和其他基本的东西.... – user325643
不知道为什么这是downvoted。人们至少应该评论。 –