让你彻底理解Typescript中静态成员和抽象方法
1.Typescript中static详解
静态成员:在类中通过 static 修饰的属性或者方法
那么就是静态的属性静态方法
也称之为:静态成员(静态成员包含静态属性和静态方法)
静态成员在使用的时候通过【类名.静态属性】来访问
2.访问和修改static静态成员的小栗子
class Person{
// 类中默认有一个内置name属性
// 静态属性myname
static myname:string='小可爱'
sayHi() {
console.log('sayHi')
}
}
const per = new Person();
// 访问类中的静态属性
console.log(Person.myname);
// 修改类中的静态属性
Person.myname = '大可爱'
console.log(Person.myname);
//输出[大可爱]
3.抽象方法
抽象类中包含抽象方法:(抽象方法一般【没有任何具体内容】的实现)
抽象类中也可以包含实例方法
抽象类是不能够被实例化
抽象类可以让子类进行实例化以及实现内部所有的抽象方法
抽象类中也可以有抽象属性
{但是在实际开发过程中抽象类中一班不会有抽象属性}
我们知道了抽象类中可以包含:抽象属性 抽象方法 实例方法
ps:子类继承了抽象类,子类就必须实现抽象类中的抽象方法
4.写抽象类的注意点
abstract class Animals{
// 这样写法是错误的,
// 因为抽象方法一般没有任何具体内容的实现
// abstract eat (){
// console.log('跑着吃,跳着吃')
// }
abstract eat()
}
// 这样的写法是错误的。
// 因为:抽象类不能够被实例化
// let dog=new Animals()
5.抽象类
abstract class Animals{
// 这样写法是错误的,
// 因为抽象方法一般没有任何具体内容的实现
// abstract eat (){
// console.log('跑着吃,跳着吃')
// }
abstract eat()
abstract sleep();
// 抽象类中的抽象属性
abstract myname: string
// 抽象方法也可以包含实例方法
say() {
console.log('你好啊')
}
}
// 子类继承了抽象类,子类就必须实现抽象类中的抽象方法
class Dog extends Animals {
// 重新实现抽象类中的抽象方法
eat() {
console.log('我是狗,趴着吃')
}
// 重新实现抽象类中的抽象方法
sleep() {
console.log('我是狗,趴着睡')
}
// 实现抽象属性
myname: string="狗子"
}
// 实例化
let xiaohei = new Dog();
// 直接调用方法
xiaohei.eat();//我是狗,趴着吃
// 调用的是抽象类中的实例方法
xiaohei.say();//你好啊
// 修改类中的属性
xiaohei.myname = '小黄狗'
console.log(xiaohei)
// 输出 Dog { myname: '小黄狗' }
让你彻底理解Typescript中静态成员和抽象方法的更多相关文章
- 十分钟教你理解TypeScript中的泛型
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://blog.bitsrc.io/understanding-generics-in-t ...
- typescript 中的 infer 关键字的理解
infer 这个关键字,整理记录一下,避免后面忘记了.有点难以理解呢. infer infer 是在 typescript 2.8中新增的关键字. infer 可以在 extends 条件类型的字句中 ...
- TypeScript 中命名空间与模块的理解?区别?
一.模块 TypeScript 与ECMAScript 2015 一样,任何包含顶级 import 或者 export 的文件都被当成一个模块 相反地,如果一个文件不带有顶级的import或者expo ...
- 【TypeScript】如何在TypeScript中使用async/await,让你的代码更像C#。
[TypeScript]如何在TypeScript中使用async/await,让你的代码更像C#. async/await 提到这个东西,大家应该都很熟悉.最出名的可能就是C#中的,但也有其它语言也 ...
- JavaScript 和 TypeScript 中的 class
对于一个前端开发者来说,很少用到 class ,因为在 JavaScript 中更多的是 函数式 编程,抬手就是一个 function,几乎不见 class 或 new 的踪影.所以 设计模式 也是大 ...
- TypeScript 中的方法重载
方法重载(overload)在传统的静态类型语言中是很常见的.JavaScript 作为动态语言, 是没有重载这一说的.一是它的参数没有类型的区分,二是对参数个数也没有检查.虽然语言层面无法自动进行重 ...
- 深入理解Java中的IO
深入理解Java中的IO 引言: 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务 < Thinking in Java > 本文的目录视图如下: ...
- TypeScript中使用getElementXXX()
如果只是看解决方法,可以直接跳到第二小节 简述 Angular 1.x版本是用JavaScript编写的,我们在百度Angular经常会搜索到AngularJS,并不是JavaScript的什么衍生版 ...
- typeScript中的数据类型
/* typeScript中的数据类型 typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型 布尔类型(boolean) 数 ...
- TypeScript中的private、protected
首先我们要清楚 private . protected 现阶段只是javascript中的保留字(Reserved words),而非关键字(Keywords ).因此TypeScript中的纯类型声 ...
随机推荐
- 当AI抄起了水表
摘要:一套AI工作流,既减轻水表抄表工的负担,也保证了普通百姓用水数据的真实. 本文分享自华为云社区<行业案例:当AI抄起水表,一套工作流打通水务智能的"任督二脉">, ...
- XEngine:深度学习模型推理优化
摘要:从显存优化,计算优化两个方面来分析一下如何进行深度学习模型推理优化. 本文分享自华为云社区<XEngine-深度学习推理优化>,作者: ross.xw. 前言 深度学习模型的开发周期 ...
- 火山引擎 DataLeap:如何构建一套完整、易用的数据标准体系
数据标准是数据治理体系中的核心要素之一. 一方面,统一的数据标准可以在复杂的业务场景下,帮助团队对齐数据口径,提升数据在分析.诊断等场景的质量与效率:另一方面,数仓团队与分析师团队也需要沉淀一套敏 ...
- 利用 Solon-web 框架写一个 Hello World
Solon 项目的开源地址: https://gitee.com/noear/solon 最近看了不少别人写的各种框架的 Hello world 示例,有些看起来,真的很复杂. 今天,我们用号称简单到 ...
- PPT 放映电脑Office版本低怎么办
转换成全图形PPT 转成图片,无法放动画 转换成全视频 转成视频,无法控制节奏 PPT VIEWEB 本地PPT播放工具
- python argparse传入布尔参数不生效解决
前言 在一个需要用到flag作为信号控制代码中一些代码片段是否运行的,比如"--flag True"或者"--flag False". 但是古怪的是无法传入Fa ...
- faker造数据
faker是一个开源的python库,安装完成后只需要调用Facker库,就可以帮助我们创建需要的数据. pip install Faker demo from faker import Faker ...
- 认证,权限,频率源码分析 自定义频率类 SimpleRateThrottle缓存频率类 基于APIView编写分页
目录 昨日回顾 三种位置的token获取 三种权限校验方式 原生django的cookie+session认证底层原理 断点调试使用 认证,权限,频率源码分析(了解) 权限源码分析 认证源码分析 频率 ...
- MP4 视频“只闻其声,不见其人”,是怎么回事呢?
艾瑞巴蒂大家好,我二狗子又来啦!这段时间关于疫情的好消息不断,各个地区的疫情都得到了有效的控制,做到了新增病例个位数增长甚至连续多天零增长!这不,二狗子也终于可以出村回到大城市上班啦!由于要坐很久的火 ...
- CDS 重命名失败
当创建CDS视图,名称命名错误,后将视图名称更改后,激活报错(例如,第一次创建的视图名称为ZVWM014,后改为ZVMM014) SQL view ZVWM014 cannot be renamed ...