TypeScript快速入门 - 类的使用

TypeScript 类

1、类的声明

        关键字:class

class Child {}

2、类的继承

        关键字:extends

class Father{ }class Child extends Father {}

3、类与接口

        关键字:implments

interface IMan {name: string
}class Father implements IMan {name: stringconstructor(name: string) {this.name = name;}
}class Child extends Father {}let child = new Child("张三");console.log(child.name);// 张三

4、抽象类

        关键字:abstract

interface IMan {name: string
}abstract class Man {say(): string {return "我是抽象类!"}
}class Father extends Man implements IMan {name: stringconstructor(name: string) {super()this.name = name;}
}class Child extends Father {}let child = new Child("张三");console.log(child.name);
console.log(child.say());// 张三
// 我是抽象类!

5、类的成员变量修饰符

        公开的:public

        私有的:private

        受保护的:protected

        只读的:readonly

class Man {// 受保护protected gender: string// 只读readonly age: number = 18constructor(gender: string) {this.gender = gender;}
}class Teacher extends Man {// 公开public name: string// 私有private DNA: string = "aaa"getGender(): string {return this.gender;}setGender(gender: string) {this.gender = gender;}constructor(name: string) {super("男");this.name = name;// 可以访问 private属性只能在本类中访问console.log(this.DNA); // aaa // 可以访问 protected属性只能在本类及其子类中访问console.log(this.gender); // 男}
}let teacher = new Teacher("张老师");
// 因为修饰符是public 可以修改和访问
teacher.name = "王老师"
console.log(teacher.name);  // 王老师// 报错 因为修饰符是private 所以无法访问
// 属性“DNA”为私有属性,只能在类“Teacher”中访问。
console.log(teacher.DNA);// 报错 因为修饰符是protected
// 属性“gender”受保护,只能在类“Man”及其子类中访问。
console.log(teacher.gender);
// 可以在Man的子类Teacher中进行访问或修改
console.log(teacher.getGender()); // 男
teacher.setGender("女");
console.log(teacher.getGender()); // 女// 报错 只读属性不能修改
// 无法为“age”赋值,因为它是只读属性。
teacher.age = 20;
console.log(teacher.age); // 18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言题目之斐波那契数列

文章目录 题目一、什么叫斐波那契数列1,由来2,定义 二、代码编写总结 题目 提示:以下是本篇文章正文内容,下面案例可供参考 一、什么叫斐波那契数列 1,由来 在数学历史上,欧洲黑暗时期过后,第…

关于:必应搜索页面自动返回顶部

最近用bing用得比较多,有一个现象特别影响使用体验,使用 Bing 搜索引擎进行搜索时,查看搜索结果后返回上一页,搜索结果页面会显示到顶部。 也就是说,我如果看完了某一条结果,现在我想返回去搜索页进入另外…

web3d-three.js场景设计器-sprite广告牌

three.js使用Sprite精灵实现文字或者图片广告牌1.将文字绘制到Canvas,调整对应宽高。2.作为Cavans材质绑定到Sprite3.加载到场景调整适当的scale function createLabel({ text, fontSize, textColor, color, imageUrl }) { return new Promise((resolve, reject) &…

数据结构学习 jz66 构建乘积数组

关键词:数学 双指针 方法一:这个题目我一开始做不知道不能用除法。我做的:[ 用时: 12 m 12 s ] 用了除法 分类讨论 方法二:后来看了提示,双指针,两边各开始乘。 方法三:然后又看了答案可以节…

利用Java的加锁文件机制实现只运行一个进程实例

public static void main(String[] args) { if(isStarted()) { JOptionPane.showMessageDialog(null, "软件正在运行中"); System.exit(0); } //start app; } private static FileLock lock null; // 判断该应用是…

vue 使用mock模拟数据

vue 使用mock模拟数据 安装依赖 cnpm install axios --save cnpm install mockjs --save-dev cnpm install json5 --save-dev在根目录下,新建一个mock文件,且创建如下文件 utils.js index.js const Mock require(mockjs) const { param2Obj } …

基于selenium的pyse自动化测试框架

介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。 特点: 默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css&#xff09…

【电脑技巧】Win11关闭自动更新

要想彻底关闭Windows电脑的自动更新,仅仅从系统设置里面选择暂停更新是完全不够用的,只有将windows自动更新的服务关闭掉,才能有效阻止其更新。 关闭win11电脑自动更新的办法,具体操作如下: 1.在winr运行框中输入servi…

8 微信小程序支付

8 微信小程序支付 9 微信小程序支付概述1.沙箱环境2.微信小程序支付2.1 微信小程序平台2.2 商户平台账号(企业)2.3 账号 3. 微信支付的步骤4.案例4.1 用户登录4.2 支付4.3 微信通知 9 微信小程序支付概述 各位小伙伴想要博客相关资料的话关注公众号&…

vue3中,vue-echarts基本使用(柱状图、饼图、折线图)

注意:vue-echarts在使用前要先安装echarts,不要只安装vue-echarts这一个 echarts官网地址:Apache EChartsApache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互&#xf…

几个Python小案例,爱上Python编程!

Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰。 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看。 一、画爱心表白 1、图形都是由一…

微软Power Platform使用Canvas app画布应用添加自定义连接器调用外部API展示数据

微软Power Platform使用Power Apps的Canvas app画布应用添加自定义连接器,调用外部API展示数据 目录 微软Power Platform使用Power Apps的Canvas app画布应用添加自定义连接器,调用外部API展示数据1、在Power Apps中找到自定义连接器2、创建一个空白的自…

CentOS7中将MySQL注册为系统服务开机启动

实际生产环境中为了避免重启服务器后所有的服务都手动启动带来的麻烦,建议所有基础服务都设置为开机自动启动。本章节我们主要演示在Centos7中如何将MySQL注册为系统服务,并实现开机自动启动。 ① 手动启动mysql,查看进程信息,复制…

XTuner 微调 课程学习

大语言模型于海量的文本内容上,以无监督和半监督的方式进行训练的 模型微调的目的:使其在具体的使用场景或领域中输出更好的回答 增量预训练——给模型喂新的领域知识; 指令跟随或指令微调—— 基于海量的预训练数据训练出来的模型通常叫做…

SD-WAN解决跨国公司海外工厂网络安全问题

在跨境业务蓬勃发展的今天,越来越多的大型企业出于人力成本的考虑,在人力成本较低的发展中国家建立工厂。然而,传统基于路由器的网络架构已无法为这些跨国企业提供可靠的安全网络。那么,如何解决跨国企业海外工厂的网络难题呢&…

关于Python —— Python教程

开始 Python 是一个易于学习、使用和高效阅读的编程语言。它具有简洁的英文语法,编写更少的代码,让程序员专注于业务逻辑而不是语言本身。 本教程将从深度、专注细节上去理解 Python 这门语言。初学者可以参考此教程理解相应的内容,本教程将…

选中图层为什么不能建立3D模型---模大狮模型网

在Photoshop CC 2021(也就是PS6)中,要将选中的图层转换为3D模型,需要满足以下几个条件: 图层类型支持:只有特定类型的图层可以被转换为3D模型。通常,普通的像素图层、矢量图层和形状图层都可以进行转换。但是&#xff…

软件测试|Python数据可视化神器——pyecharts教程(十二)

使用pyecharts绘制关系网图 简介 关系网图是一种可视化工具,用于展示各个元素之间的关联关系。在数据分析和可视化中,关系网图通常用于展示网络、社交关系、知识图谱等方面的数据。Pyecharts 是一个功能强大的 Python 数据可视化库,可以轻松…

003-90-14【SparkSQLDFDS】龙井村寸头二大爷家女儿小红用GPT 学习DataFrame 的创建和使用--入门教程

【SparkSQL&DF&DS】DataFrame 的创建和使用 【SparkSQL&DF&DS】2,DataFrame 的创建和使用1, 创建2, show3, printSchema4, select...show5, filter6, group by...count7,创建局部视图和全局视图8,spark sql 【Spa…

【INTEL(ALTERA)】错误 (19021):相同的文件名 xx 用于不同的 IP 文件。同一个名称不能用于多个 IP 文件。

说明 由于在英特尔 Quartus Prime Pro Edition 软件版本 22.3 上运行 CVP 设计时出现问题,使用 IP 升级工具自动更新复位释放英特尔 FPGA IP可能会导致同一 IP 的 .qip 和 .ip 文件包含在英特尔 Quartus设置文件中。这将产生如下所示的错误。 错误 (19…