TypeScript-抽象类

抽象类概述

  • 抽象类是专门用于定义那些不希望被外界直接创建的类的
  • 抽象类一般用于定义基类
  • 抽象类和接口一样用于约束子类
  • 首先来看看没有抽象类的实现写法,在 TypeScript-类方法修饰符 章节当中我已经编写过了,这里就不在编写了,就直接开始看抽象类即可

错误示例:

image-20211128225454524

abstract class Person {
    abstract name: string;

    abstract say(): void;
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let p = new Person();

正确示例:

abstract class Person {
    abstract name: string;

    abstract say(): void;
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let stu = new Student();
stu.say();

抽象类和接口的区别

  • 接口中只能定义约束, 不能定义具体实现
  • 而抽象类中既可以定义约束, 又可以定义具体实现

image-20211128225324912

abstract class Person {
    abstract name: string;

    abstract say(): void;

    eat(): void {
        console.log(`${this.name}正在吃东西`);
    }
}

class Student extends Person {
    name: string = 'BNTang';

    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}

let stu = new Student();
stu.say();
stu.eat();

end02

posted @ 2021-11-28 22:59  BNTang  阅读(205)  评论(0编辑  收藏  举报