断言的意义??
来源:7-3 答疑解惑:类型断言有什么好处?

zhangkaili
2021-12-26
// 5 Customer类
class Customer {
// 多态在koa服务器后端大中项目中的使用
// 父类的引用接受不同类的子类对象
rentVechile(vechile: Vechile) {
vechile.calculateRent();//
if (vechile instanceof Vechile) {
// 父类对象变量断言成子类后,调用子类独有方法
(vechile as Bus).checkIsOverNum(true)// S94
}
}
}
let cust = new Customer()
cust.rentVechile(new Car(“本田”, “京G113”, 35, 400, “1”)) ==>老师,Car实例没有checkIsOverNum方法,那这样断言的意义是什么?
cust.rentVechile(new Bus(“大巴”, “京G115”, 89, 700, 16))
写回答
1回答
-
keviny79
2021-12-27
理解反了,如果所有子类都有的方法和属性,就不用断言了,直接写到父类,子类重写后,使用vechile变量来调用,而在这个rentVechile方法中,充分用到了多态的好处,但是如果偶尔这样的rentVechile方法里用到某个子类独有的方法,那么就需要把 父类对象变量 断言成子类对象后再去调用
022021-12-31
相似问题