博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TypeScript基础入门 - 类 - 抽象类
阅读量:7008 次
发布时间:2019-06-27

本文共 1298 字,大约阅读时间需要 4 分钟。

hot3.png

转载

项目实践仓库

https://tag: 1.1.4

为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。

npm install -D ts-node

后面自己在练习的时候可以这样使用

npx ts-node 脚本路径

抽象类

抽象类做为其它派生类的基类使用。 它们一般不会直接被实例化。 不同于接口,抽象类可以包含成员的实现细节。 abstract关键字是用于定义抽象类和在抽象类内部定义抽象方法。具体例子如下

abstract class Animal {    abstract makeSount(): void;    move(): void {        console.log('我在移动');    }}

抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。 抽象方法的语法与接口方法相似。 两者都是定义方法签名但不包含方法体。 然而,抽象方法必须包含 abstract关键字并且可以包含访问修饰符。具体示例如下

abstract class Department {    constructor(public name: string) {    }    printName(): void {        console.log("部门名称:" + this.name);    }    abstract printMeeting(): void; // 必须在派生类中实现   }class AccountingDepartment extends Department {    constructor() {        super("会计和审计"); // 在派生类中必须调用super()    }    printMeeting(): void {        console.log('会计部每个星期一上午10点开会');    }    generateReports(): void {        console.log('生成会议报告');    }}let department: Department; // 允许创建一个对抽象类型的引用// department = new Department(); // 不能创建一个抽象类的实例department = new AccountingDepartment(); //  允许对一个抽象子类进行实例化和赋值department.printName();department.printMeeting();// department.generateReports(); //  此方法不能调用,因为在声明的抽象类中不存在

运行后的结果如下

$ npx ts-node src/classes_6.ts部门名称:会计和审计会计部每个星期一上午10点开会

本实例结束实践项目地址

https://tag: 1.1.5

转载于:https://my.oschina.net/zhangdapeng89/blog/1927333

你可能感兴趣的文章
python为什么会作为***的首选语言?这几本书给你答案(已集齐)
查看>>
看过来!怎么恢复SD卡删除的文件?
查看>>
如何加快Python 应用的启动时间
查看>>
不可修改字符串NSString和可修改字符串NSMutableString
查看>>
django第一个app,4
查看>>
微信转发或分享朋友圈带缩略图、标题和描述的实现方法
查看>>
小程序一定要安装ssl证书吗
查看>>
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
查看>>
DB2 锁升级示例1
查看>>
启动网卡报错Failed to start LSB: Bring up/down network
查看>>
centos 升级4.0 内核
查看>>
Ubuntu配置永久生效的alias总结
查看>>
Tcp/Ip Http Socket的区别
查看>>
理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)
查看>>
我的友情链接
查看>>
tp5, laravel, yii2我该选择哪个
查看>>
compositionEnd 和 input 事件(中文输入法问题)
查看>>
Nginx基本安装配置
查看>>
Nginx支持php配置
查看>>
观察者模式
查看>>