智能类型转换
var b:B = Student()
if (b is Student){
b.money
}
解释:Student是B的子类,money是Student的属性,智能类型转换后,b直接使用子类的属性
作用范围:在判断的保护范围内可使用,出了范围b的类型就是B,money属性就不能使用,还有不能定义公共范围的智能转换,因为在使用的过程中,可能已经被其他线程修改
类型的安全转换
var b:B = Student()
(b as? Student)?.money
var b:B = Student()
if (b is Student){
b.money
}
解释:Student是B的子类,money是Student的属性,智能类型转换后,b直接使用子类的属性
作用范围:在判断的保护范围内可使用,出了范围b的类型就是B,money属性就不能使用,还有不能定义公共范围的智能转换,因为在使用的过程中,可能已经被其他线程修改
var b:B = Student()
(b as? Student)?.money
本文标题:Kotlin学习之初探——智能类型转换
本文链接:https://www.haomeiwen.com/subject/hdjnjktx.html
网友评论