博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
协变&逆变
阅读量:6436 次
发布时间:2019-06-23

本文共 409 字,大约阅读时间需要 1 分钟。

hot3.png

编程语言的类型框架中,协变和逆变是指宽类型和窄类型在某种情况下(如参数、泛型、返回值)替换或交换的特性。 简单地说,协变是用一个窄类型替换宽类型,而逆变则是用宽类型覆盖窄类型。
在java中可以这样去理解: Java中String类型是继承自Object的,姑且记做String ≦ Object,表示String是Object的子类型,String的对象可以赋给Object的对象。而Object的数组类型Object[],理解成是由Object构造出来的一种新的类型,可以认为是一种构造类型,记f(Object),那么可以这么来描述协变和逆变: 当A ≦ B时,如果有f(A) ≦ f(B),那么f叫做协变; 当A ≦ B时,如果有f(B) ≦ f(A),那么f叫做逆变; 如果上面两种关系都不成立则叫做不可变。

转载于:https://my.oschina.net/crazyharry/blog/1105132

你可能感兴趣的文章
别用这种方式聊天,你都不知道自己是怎么聊死的
查看>>
中国香港地区 DDoS- botnet 态势分析
查看>>
另一个角度的架构师
查看>>
SparseArray<E>详解
查看>>
Eclipse-Java代码规范和质量检查插件-PMD
查看>>
阿里专家分享:企业级大数据轻量云实践
查看>>
阿里财报:云计算年度营收133亿,季度营收连续12个季度翻番
查看>>
人工智能化发展已经到了哪一步?
查看>>
php实现上传图片保存到数据库的方法
查看>>
安卓应用安全指南 5.4.3 通过 HTTPS 的通信 高级话题
查看>>
针对CMS中的tag标签理解
查看>>
AR头显要上天!欧洲太空总署或用HoloLens维修太空站
查看>>
沃尔玛建立自家的人工智能网络,抗衡竞争对手亚马逊
查看>>
Mysql备份与还原及优化方法
查看>>
linux常用命令和选项
查看>>
sed 学习笔记(未完成)
查看>>
Eclipse保存验证JS缓慢
查看>>
2017 JMP Discovery Summit China圆满落幕
查看>>
9 Easy Steps for Successful Data Migration
查看>>
人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
查看>>