TypeScript 面向对象其它内容可看这篇文章 ⤵️
TypeScript面向对象(一)(类、构造函数、继承)
一、抽象类
通过关键字
abstract
开头定义一个抽象类
抽象类和其它类区别不大,被专门用作继承的类,不能再被创作为实例的类
抽象类中的抽象方法,只能定义在抽象类中,子类必须对抽象方法进行重写
举例
abstract class Animal {
//......
abstract sayHi(): void
}
class Dog extends Animal {
sayHi() { // 子类如果不写此方法将会报错
console.log('汪汪汪!')
}
}
// const an = new Animal() // 如果尝试去创建一个抽象类的实例,会报错!
const dog = new Dog()
dog.sayHi() // 汪汪汪!
二、接口
通过关键字
interface
来定义接口
接口可以在定义类的时候,限制类的结构
接口中所有的属性,都不能有实际的值
接口中所有的方法,都是抽象方法
interface myInter {
name: string;
sayHello(): void;
}
实现接口
通过关键字
implements
实现接口
interface myInter {
name: string;
sayHello(): void;
}
class haveInter implements myInter{
name: '孙悟空'; // 必须要有接口里的同名属性
constructor(name) {
this.name = name
}
sayHello() { // 必须要有接口里的同名方法
console.log('哈哈哈哈')
}
}
点个赞再走呗~