学习视频:
抽象类
抽象类是专门用来被其他类所继承的类,它只能被其他类所继承不能用来创建实例
- abstract关键字;
- 和其他类区别不大,只是不能用来创建对象;
- 抽象类是专门用来被继承的类
生来就是做爸爸(父类)的😂。 - 可以添加抽象方法
抽象方法:
使用abstract开头的方法叫做抽象方法,抽象方法没有方法体只能定义在抽象类中,继承抽象类时抽象方法必须要实现;
- 只定义结构,没有方法体;
- 只能定义在抽象类中;
- 具体实现由子类决定,子类必须对抽象方法进行重写;
接口
定义:
- interface关键字
- 用来定义一个类结构,定义一个类中应该包含哪些属性和方法,限制类的结构
- 接口中的所有属性都不能有实际的值。
- 接口中所有的方法都是抽象方法
- 接口也可以当成类型声明去使用,可以重复声明。
- 类实现接口:implements,使类满足接口的要求
// 第一次声明
interface myInterface{
name: string;
age: number;
}
// 第二次声明
interface myInterface{
gender: string;
sayHello():void;
}
// myInterface重复声明,所以obj 必须有name、age和gender这3个参数
const obj: myInterface = {
name: 'mewgulf',
age: 19,
gender: 'male',
sayHello()
{
console.log("wanzai");
}
}
class MyClass implements myInterface{
name: string;
age: number;
gender: string;
constructor(name: string){
this.name = name;
}
sayHello()
{
console.log("hey");
}
}
区别:
- 抽象类为了复用,
接口为了约束,是一种标准 - 抽象类可以有抽象方法,也可以有普通方法
接口都是抽象方法 - 实现
抽象类:extends
接口:implement
同: 均在JS 里没有, 均在TS里新增。