### 抽象类:
以**abstract** 开头的是抽象类,只能作为父类给子类继承,不能用来创建对象
```
abstract class Animal{
name:string;
age:number;
constructor(name:string,age:number){
this.name = name
this.age = age
}
say(){
console.log(111)
}
}
```
抽象方法:
1. 抽象方法必须定义在抽象类中
1. 抽象方法继承的之类必须重写
1. 抽象方法没有返回值
1. 抽象方法就是在方法前面加abstract
```
abstract class Animal{
name:string;
age:number;
constructor(name:string,age:number){
this.name = name
this.age = age
}
abstract say():void
}
```
接口:
用来定义一个类的结构。
关键字:**interface**
1 **可以代替类型声明type 去定义对象的结构。注意,结构里面的是分号**
```
interface myInterface{
name:string;
age:number;
}
const person:myInterface = {
name:'zhangsan',
age:18
}
```
2 **用接口去定义类:**
类实现接口的关键字:**implements**
接口可以定义多个相同名字的,类型约束以两个的合在一起为标准。
接口的意义:实际上就是定义了一个规范,只要实现了接口,就是满足了规范,就可以在符合的 场景中使用。
注意:在接口中所有定义的方法类型都是void
```
interface personInterface{
name:string;
age:number;
say():void
}
class Person implements personInterface{
name: string;
age:number;
constructor(name:string,age:number){
this.name = name
this.age = age
}
say(): void {
console.log(1)
}
}
```
以上就是ts中的抽象类,接口的简单使用,还要在自己的项目中刻意练习,才能熟练掌握。