一、类变量指向该类的对象
类也是一种自定义类型,用于指向该类对象, 类变量也可以赋值为null或undefine
二、父类变量指向子类对象
父类变量可以指向子类对象,指向子类的子类的对象也可以, 比如父类是"人(Person)",子类是"男孩(Boy)",因为男孩本就是人,所以可以用人指向它, 只是男孩对象被人指向后,只把男孩当人看待,不当男孩看待. 以当前示例为例,对于let person2: Person = new Boy();而言。 person2只能访问Person类中的成员,不能访问Boy中的成员
//父类变量指向子类对象
// 子类变量不能指向父类变量
class Person {
eat() {
return ("吃饭啦")
};
run() {
return ("跑步")
}
}
class Boy extends Person {
name: string;
sleep() {
return ("睡觉")
} constructor(n: string) {
super()
this.name = n
}
}
let p1: Person = new Boy("jack")
p1.eat()//运行的是Person中的eat函数
p1.run()//运行的是Person中的run函数
// p1.sleep() ====> 报错,因为sleep是Boy类中的,p1是一个Person类
三、类型断言