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() })()
运行结果: