【TypeScript教程】# 12:抽象类

简介: 【TypeScript教程】# 12:抽象类

说明

尚硅谷TypeScript教程(李立超老师TS新课)学习笔记。



抽象类

以 abstract 开头的类是抽象类,抽象类和其他类区别不大,只是不能用来创建对象,抽象类就是专门用来被继承的类


抽象方法

  • 抽象方法使用 abstract 开头,没有方法体
  • 抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写


例子

(function() {
    // 父类
    abstract class Animal {
        name: string;
        constructor(name: string) {
            this.name = name;
        }
        // 定义一个抽象方法
        abstract sayHello():void;
    }
    // 使Dog类继承Animal类
    class Dog extends Animal{
        sayHello() {
            console.log(`${this.name}汪汪汪`);
        }
    }
    class Cat extends Animal{ // 非抽象类“Cat”不会实现继承自“Animal”类的抽象成员“sayHello”。
        sayHello() {
            console.log(`${this.name}喵喵`);
        }
    }
    const dog = new Dog("小黄");
    console.log(dog);
    dog.sayHello();
    // console.log(new Animal); // 无法创建抽象类的实例。
})()


49d9c5dcc5e648f2b449bcb97a2ea34e.png

目录
相关文章
|
13天前
|
JavaScript 前端开发
37.【TypeScript 教程】TSLint 与 ESLint
37.【TypeScript 教程】TSLint 与 ESLint
11 0
|
13天前
|
JavaScript 编译器 IDE
36.【TypeScript 教程】tsconfig.json 配置
36.【TypeScript 教程】tsconfig.json 配置
10 0
|
13天前
|
JavaScript 编译器
35.【TypeScript 教程】编译选项
35.【TypeScript 教程】编译选项
11 2
|
13天前
|
JavaScript 前端开发 编译器
34.【TypeScript 教程】声明合并
34.【TypeScript 教程】声明合并
14 0
|
13天前
|
JavaScript 编译器
33.【TypeScript 教程】命名空间
33.【TypeScript 教程】命名空间
17 2
|
13天前
|
JavaScript 编译器 开发者
32.【TypeScript 教程】模块
32.【TypeScript 教程】模块
10 0
|
13天前
|
JavaScript 编译器
31.【TypeScript 教程】混入(Mixins)
31.【TypeScript 教程】混入(Mixins)
15 3
|
13天前
|
JavaScript Java API
30.【TypeScript 教程】Reflect Metadata
30.【TypeScript 教程】Reflect Metadata
12 4
|
13天前
|
JavaScript 监控 编译器
29.【TypeScript 教程】装饰器(Decorator)
29.【TypeScript 教程】装饰器(Decorator)
9 0
|
13天前
|
JavaScript
28.【TypeScript 教程】生成器(Generator)
28.【TypeScript 教程】生成器(Generator)
19 3