07继承和抽象类
继承¶
-
继承时面向对象中的又一个特性
-
通过继承可以将其他类中的属性和方法引入到当前类中
-
示例:
-
```typescript class Animal{ name: string; age: number;
constructor(name: string, age: number){ this.name = name; this.age = age; } }
class Dog extends Animal{
Text Onlybark(){ console.log(`${this.name}在汪汪叫!`); }
}
const dog = new Dog('旺财', 4); dog.bark(); ```
-
-
通过继承可以在不修改类的情况下完成对类的扩展
-
重写
-
发生继承时,如果子类中的方法会替换掉父类中的同名方法,这就称为方法的重写
-
示例:
-
```typescript class Animal{ name: string; age: number;
constructor(name: string, age: number){ this.name = name; this.age = age; }
run(){ console.log(
父类中的run方法!
); } }
class Dog extends Animal{
Text Onlybark(){ console.log(`${this.name}在汪汪叫!`); } run(){ console.log(`子类中的run方法,会重写父类中的run方法!`); }
}
const dog = new Dog('旺财', 4); dog.bark(); ```
- 在子类中可以使用super来完成对父类的引用
## 抽象类(abstract class)
-
-
抽象类是专门用来被其他类所继承的类,它只能被其他类所继承不能用来创建实例
-
```typescript abstract class Animal{ abstract run(): void; bark(){ console.log('动物在叫~'); } }
class Dog extends Animals{ run(){ console.log('狗在跑~'); } } ```
-
使用abstract开头的方法叫做抽象方法,抽象方法没有方法体只能定义在抽象类中,继承抽象类时抽象方法必须要实现