TypeScript面向对象(二)(抽象类、接口)

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('哈哈哈哈')
    }
}

点个赞再走呗~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容