一.类的多态
多态就是父类定义一个方法不去实现,让继承他的子类去实现,每一个子类有不同的表现
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开头的类是抽象类
- 抽象类和其他类区别不大,只是不能用来创建对象
- 抽象类就是专门用来被继承的类
- 抽象类中可以添加抽象方法抽象方法只能定义抽象类中,子类必须对抽象方法进行重写
abstract class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
//抽象方法,,没有方法体
//抽象方法只能定义抽象类中,子类必须对抽象方法进行重写
abstract eat(): void;
}
class Dog extends Animal {
eat() {
console.log("必须重写eat方法,不重写报错");
}
}