多态就是父类定义一个方法不去实现,让继承他的子类去实现,每一个子类有不同的表现
- class Animal {
- name: string;
- constructor(name: string) {
- this.name = name;
- }
- eat(): void {
- console.log("父级定义一个吃的方法不去实现,让子级去实现");
- }
- }
- class Dog extends Animal {
- constructor(name: string) {
- super(name);
- }
- eat(): void {
- console.log(this.name + "吃狗狼");
- }
- }
- class Cat extends Animal {
- constructor(name: string) {
- super(name)
- }
- eat(): void {
- console.log(this.name + "吃猫粮")
- }
- }
- var d = new Dog("狗")
- var c = new Cat("猫")
- d.eat()
- c.eat() //子类去实现不同的操作 这就是多态
- abstract class Animal {
- name: string;
- constructor(name: string) {
- this.name = name;
- }
- //抽象方法,,没有方法体
- //抽象方法只能定义抽象类中,子类必须对抽象方法进行重写
- abstract eat(): void;
- }
-
- class Dog extends Animal {
- eat() {
- console.log("必须重写eat方法,不重写报错");
- }
- }