ts中的多态
//多态: 父类型的引用指向子类型的对象,不同类型的对象针对相同的方法,产生了不同的行为
(() => {
class Animal {
name: string
constructor(name: string) {
this.name = name;
}
// 实例方法
run(distance: number = 0) {
console.log(`跑了${distance} 千米`)
}
}
class Dog extends Animal {
constructor(name: string) {
// 调用父类的构造函数,实现子类中属性的初始化
super(name)
}
// 实例方法重写父类中的实例方法
// 实例方法
run(distance: number = 5) {
console.log(`${this.name}跑了${distance} 千米`)
}
}
class Pie extends Animal {
constructor(name: string) {
// 调用父类的构造函数,实现子类中属性的初始化
super(name)
}
// 实例方法重写父类中的实例方法
// 实例方法
run(distance: number = 10) {
console.log(`${this.name}跑了${distance} km`);
}
}
// 实例化父类对象
const ani:Animal = new Animal('动物');
ani.run()
// 实例化子类对象
const dog:Dog = new Dog("大黄");
dog.run()
const pie:Pie = new Pie('八戒');
pie.run()
console.log("=====================")
const dog1:Animal =new Dog('小黄');
dog1.run()
const pie1:Animal = new Pie("小猪")
pie1.run()
})()
运行结果:


浙公网安备 33010602011771号