目录
1 联合类型
2 交叉类型
2.1 基本使用
2.2 与继承的区别
1 联合类型
联合类型是 或 的关系
联合类型表示这个变量可以是多个类型,比如 a 可以是 数字或字符串
使用联合类型后改变到指定的类型就不会报错了
2 交叉类型
2.1 基本使用
交叉类型是 和 的关系
和 的关系就不能是基本类型了,因为一个普通的变量不能既是数字又是字符串
2.2 与继承的区别
首先是逻辑上就有区别,继承是父子关系,交叉类型是兄弟关系
我们再从代码的层面来看,你用交叉类型,有的时候它会自动给你兼容(不是所有的情况,比如返回值就不行)。比如我在下面的Bird与Person中都定义了fly(),fly()有相同的参数a,一个a定义的是数字,另一个a定义的是字符
这个时候你定义BP,BP的fly()既可以是数字也可以是字符
在用继承的时候直接就报错了,因为子类不能与父类发生冲突