我想,当一个类实现一个接口,它是说,它“可以做”什么在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. 类设计:类实现接口实现另一个接口
- 5. 对象的接口,但约束类型上实现该接口
- 6. C#如何检查一个类是否实现泛型接口?
- 7. 实现接口到一个类:接口到接口
- 8. 接口是否被认为是实现它的类的父类?
- 9. 打开通用接口类型的开放实现不等于接口类型?
- 10. 你会为2个类实现一个类或2个接口的接口吗
- 11. 检查类是否实现接口
- 12. TypeScript - 检查类是否实现接口
- 13. 将接口实例分配给实现该接口的类
- 14. 通用类型从实现中的泛型类型的接口
- 15. 如何判断一个类是否是java接口的实现
- 16. 如何检查是否一个类实现一个接口
- 17. 如果一个类实现了一个接口,并被分配给一个具有该接口类型的变量,那么该对象的类型是什么?
- 18. 创建一个实现接口的类
- 19. 哪个接口一个类实现?
- 20. 是一个被认为是实现的超类的接口吗?
- 21. 扩展已经实现接口的抽象类的类是否需要接口?
- 22. Golang检查接口类型是否为
- 23. 检查类型是否为接口
- 24. 如何实现一个IEnumerable类型为<IA>的属性的接口,并使用实现该类型接口的类型进行覆盖?
- 25. 如何检查类类型,看看它是否实现了一个接口
- 26. 查询实现一个通用接口的类的泛型类型定义
- 27. 实施接口错误:类不实现接口成员
- 28. 在Java中,如果一个类实现了一个接口,是否需要编译该接口?
- 29. Typescript类使用接口作为类型而不是实现
- 30. 找出一个泛型类型实现一个接口
基于这里的文章:http://codeofdoom.com/wordpress/2009/02/12/learn-this-when-to-use-an-abstract-class-and-an-interface/。它说当一个类扩展一个抽象类时,它建立了“是A”关系,但是它与接口建立了“可以做”关系。如果抽象类和接口都建立“IS A”关系,那么接口的用法是什么?让我们不要进入多重继承和其他基本的东西.... – user325643
不知道为什么这是downvoted。人们至少应该评论。 –