让你彻底理解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中的纯类型声 ...
随机推荐
- 收到一封CTO来信,邀约面试机器学习工程师
大家好,我是北海 很少登陆 Gmail,前天收验证码登了一下,发现居然收到一封某初创公司CTO的来信. 我在Github上看到了您的资料觉得很有意思,请问您是否考虑我们公司的全职工作机会呢?可供考虑的 ...
- 【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview
本文首发我的微信公众号徐公,收录于 Github·AndroidGuide,这里有 Android 进阶成长知识体系, 希望我们能够一起学习进步,关注公众号徐公,5 年中大厂程序员,一起建立核心竞争力 ...
- 关于_beginthreadex和CreateThread的区别
关于_beginthreadex和CreateThread的区别 在 Win32 API 中,创建线程的基本函数是 CreateThread,而 _beginthread(ex) 是 C++ 运行库的 ...
- PS 创建网络去掉反冲增强
一.当物料为反冲物料时,创建网络数据,希望去掉反冲标识 二.增强实施 在BAPI中传入反冲标识为空 在标准代码中发现反冲标识的赋值位置 判断当不传入反冲标识,将物料自带的反冲标识清空 定期更文,欢迎关 ...
- 【HZERO】feign调用
feign调用 https://open.hand-china.com/community/detail/603204901962649600 # Hiam获取用户信息示例
- 开源项目因支持乌克兰遭issue刷屏,网友:别用Nginx,别用元素周期表
大家好,我是DD. 昨天,两条科技界的新闻炸了,一条是关于GitHub发文封锁俄罗斯,一条是关于Oracle暂停俄罗斯所有业务.一个是全球最大的开源软件社区,一个是全球最大的数据库软件厂商.似乎巨头的 ...
- #2612:Find a way(BFS搜索+多终点)
第一次解决双向BFS问题,拆分两个出发点分BFS搜索 #include<cstdio> #include<cstring> #include<queue> usin ...
- vivo 商城架构升级-SSR 实战篇
一.前言 在前面几篇文章中,相信大家对vivo官网商城的前端架构演变有了一定的了解,从稳步推进前后端分离到小程序多端探索实践,团队不断创新尝试. 在本文中,我们来分享一下vivo官网商城在Node 服 ...
- mysql 查看数据库及表大小以及数据库扩容评估
本文为博主原创,未经允许不得转载: 1.查看数据库数据存储的位置: show global variables like "%datadir%"; 2.查看数据库大小 2.1 in ...
- git仓库之gogs安装(docker版/二进制版)
二进制安装gogs tar zxf gogs_0.11.91_linux_amd64.tar.gz -C /data/gogs chown -R www.www /data/gogs su - www ...