java interface和class中的协变
来源:互联网 发布:弗洛伊德算法复杂动画 编辑:程序博客网 时间:2024/05/14 23:35
协变
Java中的协变是指,当发生继承时,子类中重写父类的方法时,可以返回父类方法返回类型的子类型。比如:
class SuperClass{}class SubClass extends SuperClass{} class Test{ @Override public SuperClass make(){ return new SuperClass(); }}class SubTest extends Test{ @Override public SubClass make(){ return new SubClass(); }}
这种情况下,子类中的make()方法虽然和父类中的make方法返回值不同,但是依旧重写了父类的make(),这就是协变的情形
Interface中的协变和class中的协变
在java中接口和类的协变遵守相同的规则,但这种情形如果运用不当,则会造成混乱。父接口和子接口的返回值和函数签名应始终保持一致,否者会限制接口的灵活性。
总结
当接口的实现和接口的继承同时运用时,应该谨慎,接口应始终保持一致;而类作为接口的实现时,可以适当运用协变。
0 0
- java interface和class中的协变
- java中的abstract class和interface
- java中的abstract class和interface
- java中的abstract class和interface
- java中的abstract class和interface(1)
- java中的abstract class和interface(2)
- java中的abstract class和interface
- java中的abstract class和interface
- JAVA---interface和class
- java中的abstract class和interface (zz from itpub)
- 详解java中的abstract class和interface的区别
- 详解java中的abstract class和interface的区别
- interface,abstract class,abstract interface Java中的接口,抽象类和抽象接口的异同
- Java中的Abstract Class与Interface
- PHP中的Abstract Class和Interface
- Java语言中的协变和逆变
- Java语言中的协变和逆变
- Java 中 abstract class和interface
- OpenGL启用双缓冲时颜色变淡或者不纯的解法方法
- 素数的家族(要发就发)
- LevelDB原理探究与代码分析
- How to add 3G modem in Sabresx board
- 【Qt5开发及实例】20、实现一个飞舞的蝴蝶
- java interface和class中的协变
- MFC状态栏的创建、管理、维护等
- CE教程第八步之多级指针
- MFC中如何删除工具栏中多余的图标
- [LeetCode]30.Substring with Concatenation of All Words
- CentOS卸载JDK并安装新的JDK(tar,rpm)
- BZOJ 2594 LCT维护最小生成树
- 主键生成策略
- MFC中菜单图标的实现