Day18-TypeScript(TS)的类别(Class)继承(Inheritance)

今天要来带大家看看TypeScript(TS)的类别(Class)继承(Inheritance)范例,
那麽我们直接来看程序码吧。

首先,建立一个类别

class Employee {
    constructor(private empId: number, private empName: string) { }
    showInfo() {
        return this.empId + "-" + this.empName;
    };
}

这边与*Day14-TypeScript(TS)使用成员存取修饰词(Access Modifier)*的使用方式二,
范例相同,
若是不理解的可以回去看看喔,
这边我就不再赘述了。

接这要继承Employee类别范例如下,

class Sales extends Employee {
    constructor(empId: number, empName: string, public bonus?: number) {
        super(empId, empName);
        this.bonus = 1000;
    }
}

范例程序码宣告一个Sales类别
使用extends关键字来继承Employee类别
并在建构函式(constructor)中呼叫super()
用来呼叫父类别的建构函式程序,
这边特别需要注意的是
重复的成员不要写存取方式
因此在Sales类别的建构函式成员中,
只有bonus前方有加上成员存取修饰词*(Day15-TypeScript(TS)的存取子(Accessors))*,
bonus後方的 ?则为选择性属性 (Day12-TypeScript(TS)的选择性属性(Optional Properties))

最後式使用方式,

let emp1 = new Employee(1, "Mary");
console.log(emp1.showInfo());

let s1 = new Sales(2, "Sam");
console.log(s1.showInfo());
console.log(s1.bonus);

父类别与子类别的使用方式并无不同,
就是一般的类别使用方式。

今日结语

今天带范例也带出了之前有学到的东西,
若是看不明白的话也可以到上面标记的篇章回去复习喔,
加油加油喔。


<<:  Day-18 Pytorch 的 Logistic Regrssion

>>:  【Day 19】 实作 - 透过 AWS 服务 Glue Job 调整 Partition 以及档案格式

第19车厢-娃!网页必备的响应式轮播效果怎麽刻?

本篇分享简易版的RWD的轮播效果功能 上一篇我们有简约的使用tab做轮播,但一般想做的轮播应该会是...

JS Library 学习笔记:Three.js 初见面,在2D画面创造三维世界 (四)

在真实世界中,物体因为反射光进我们的眼中,而能被看见;因此,除了物体形状外,材质与光之间的关系是3D...

Day 30 Review security tools and features

Explore Azure Security Center Provide threat prote...

[Day22] 在 GCP 的 VM 上安装 MySQL

MySQL or MariaDB CentOS 的 rpm 套件管理器预设没有 MySQL repo...

[Day18] swift & kotlin 实作篇!(9) Animation -kotlin

kotlin kotlin 也一样来让小鸡跳起来吧 这边也一样有很多种动画的写法 同swift来玩玩...