让你彻底理解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中的纯类型声 ...
随机推荐
- 一图解析MySQL执行查询全流程
摘要:当我们希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的. 本文分享自华为云社区<mysql执行查询全流程解析>,作者:breakDraw ...
- 硬核化解ISV四大痛点,华为云智联生活行业加速器助力伙伴实现商业成功
摘要:场景化展现合作伙伴.客户的案例,以期针对性的解决行业痛点,帮助伙伴共筑全场景智联生活. 本文分享自华为云社区<硬核化解ISV四大痛点,华为云智联生活行业加速器助力伙伴实现商业成功>, ...
- MySQL 数据库中的数据类型
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩展支持了 TINYINT.MEDIUMINT 和 BIGINT 整数类型 ...
- Django中安装websocket
完整代码: https://gitee.com/mom925/django-system项目结构: 先安装所需库: pip install channels下面将websocket作为插件一样的只需要 ...
- AtCoder Beginner Contest 185 题解
A - ABC Preparation 排序找出最小值 int main() { ios_base::sync_with_stdio(false), cin.tie(0); vector<int ...
- 在 Ubuntu 20.04 上安装 Visual Studio Code
Visual Studio Code 是一个由微软开发的强大的开源代码编辑器.它包含内建的调试支持,嵌入的 Git 版本控制,语法高亮,代码自动完成,集成终端,代码重构以及代码片段功能. Visual ...
- AcWing 第 3 场周赛
比赛链接:Here AcWing 3660. 最短时间 比较四个方向和 \((r,c)\) 的距离 void solve() { ll n, m, r, c; cin >> n >& ...
- 《3D编程模式》写书-第4次记录
大家好,这段时间我完成了"再看设计原则"的初稿,包括了设计基础.单一职责原则.依赖倒置原则.接口隔离原则.合成复用原则.最少知识原则.开闭原则 目前我已经完成了所有的初稿,后面会进 ...
- C#排序算法6:快速排序
快速排序由C. A. R. Hoare在1960年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...
- NCC Mocha v0.10 发布, .NET 开发的基于 OpenTelemetry 的 APM 系统
目录 项目简介 项目进度 v0.10 发布内容 项目背景 平台功能 技术架构 v0.10 快速体验 启动项目 Trace 数据的发送 配置 Jaeger 数据源 Trace 数据的查询 项目简介 Mo ...