typescript中abstractClass(抽象类)extendsabstract

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript中abstractClass(抽象类)extendsabstract相关的知识,希望对你有一定的参考价值。

// 自执行函数的作用是形成单独模块(块作用域),
// 防止此文件的变量或方法与其他文件的属性或方法冲突
(function () 
    // 以abstract开头的类是抽象类,
    // 抽象类和其他类区别不大,只是不能用来创建对象,
    // 也就是不能new Animal()的意思。
    // 抽象类就是专门用来被继承的类
    // 抽象类中可以添加抽象方法

    abstract class Animal 
        name: string;

        constructor(name: string) 
            this.name = name;
        

        // 定义一个抽象方法
        // 抽象方法使用abstract开头,没有方法体
        // 抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写
        // void没有返回值(返回值为空)
        abstract sayHello(): void;
    

    class Dog extends Animal 
        sayHello() 
            console.log('汪汪汪汪!');
        
    

    // 非抽象类“Cat”不会实现继承自“Animal”类的抽象成员“sayHello”。
    class Cat extends Animal 
        // sayHello() 
        //     console.log('喵喵喵喵!');
        // 
    

    const dog = new Dog('旺财');
    const cat = new Cat('喵喵');

    dog.sayHello();
    cat.sayHello();
)();

以上是关于typescript中abstractClass(抽象类)extendsabstract的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript语法基础讲解

TypeScript语法基础讲解

为什么Typescript允许实现抽象类?

Typescript中的接口和抽象类有啥区别?

无法在 ModelMapper 中实例化目标 [AbstractClass] 错误的实例

abstract class和interface的区别