学无先后,达者为师

网站首页 编程语言 正文

typescript中abstractClass(抽象类)、extends、abstract

作者:web半晨 更新时间: 2022-06-06 编程语言
// 自执行函数的作用是形成单独模块(块作用域),
// 防止此文件的变量或方法与其他文件的属性或方法冲突
(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();
})();

原文链接:https://blog.csdn.net/weixin_51157081/article/details/122294492

栏目分类
最近更新