typescript静态属性,静态方法,抽象类,多态
/*
1、vscode配置自动编译 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 2、第二步 任务 - 运行任务 监视tsconfig.json 2、typeScript中的数据类型 typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型 布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(array)
元组类型(tuple)
枚举类型(enum) 任意类型(any)
null 和 undefined
void类型
never类型 3、typeScript中的函数 3.1、函数的定义
3.2、可选参数
3.3、默认参数
3.4、剩余参数
3.5、函数重载
3.6、箭头函数 es6
4、typeScript中的类 4.1 类的定义
4.2 继承
4.3 类里面的修饰符 4.4 静态属性 静态方法
4.5 抽象类 多态 */ // 静态属性 静态方法 /* function Person(){
this.run1=function(){ }
}
Person.name='哈哈哈'; Person.run2=function(){ 静态方法 }
var p=new Person(); Person.run2(); 静态方法的调用
*/ /* function $(element){ return new Base(element)
} $.get=function(){ } function Base(element){ this.element=获取dom节点; this.css=function(arr,value){ this.element.style.arr=value;
}
} $('#box').css('color','red') $.get('url',function(){ })
*/ // class Per{
// public name:string;
// public age:number=20;
// //静态属性 // static sex="男";
// constructor(name:string) {
// this.name=name;
// }
// run(){ /*实例方法*/ // alert(`${this.name}在运动`)
// }
// work(){ // alert(`${this.name}在工作`)
// }
// static print(){ /*静态方法 里面没法直接调用类里面的属性*/ // alert('print方法'+Per.sex);
// }
// } // // var p=new Per('张三'); // // p.run(); // Per.print(); // alert(Per.sex); //多态:父类定义一个方法不去实现,让继承它的子类去实现 每一个子类有不同的表现 //多态属于继承
/* class Animal { name:string;
constructor(name:string) {
this.name=name;
}
eat(){ //具体吃什么 不知道 , 具体吃什么?继承它的子类去实现 ,每一个子类的表现不一样
console.log('吃的方法')
}
} class Dog extends Animal{
constructor(name:string){
super(name)
}
eat(){ return this.name+'吃粮食'
}
} class Cat extends Animal{ constructor(name:string){
super(name)
} eat(){ return this.name+'吃老鼠'
}
} */ //typescript中的抽象类:它是提供其他类继承的基类,不能直接被实例化。 //用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。 // abstract抽象方法只能放在抽象类里面 // 抽象类和抽象方法用来定义标准 。 标准:Animal 这个类要求它的子类必须包含eat方法 //标准: abstract class Animal{ public name:string;
constructor(name:string){ this.name=name; }
abstract eat():any; //抽象方法不包含具体实现并且必须在派生类中实现。 run(){ console.log('其他方法可以不实现')
}
} // var a=new Animal() /*错误的写法*/ class Dog extends Animal{ //抽象类的子类必须实现抽象类里面的抽象方法
constructor(name:any){
super(name)
}
eat(){ console.log(this.name+'吃粮食')
}
} var d=new Dog('小花花');
d.eat(); class Cat extends Animal{ //抽象类的子类必须实现抽象类里面的抽象方法
constructor(name:any){
super(name)
}
run(){ }
eat(){ console.log(this.name+'吃老鼠')
} } var c=new Cat('小花猫');
c.eat();
typescript静态属性,静态方法,抽象类,多态的更多相关文章
- python面向对象之静态属性/静态方法/类方法/组合
继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...
- 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例
1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...
- ReactiveCocoa源码解析(四) Signal中的静态属性静态方法以及面向协议扩展
上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...
- ReactiveSwift源码解析(四) Signal中的静态属性静态方法以及面向协议扩展
上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...
- springboot中静态属性/静态方法从YAML(yml)读取配置属性
启动类添加注解@EnableConfigurationProperties import jnetman.session.SnmpPref; import org.springframework.bo ...
- js静态属性,实例属性,封装性,prototype,__proto__综合解析
原创作品,转载请注明来源,sogeisetsu,我的csdn上也有这篇文章csdn js静态属性,实例属性,封装性,prototype,__proto__综合解析 下面是我在写博客的源代码,您可以先不 ...
- java中静态属性和和静态方法的继承问题 以及多态的实质
首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里 ...
- PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结
前 言 OOP 学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1 PHP中的抽象 ...
- Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法
一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...
随机推荐
- 深入浅出Node.js---Connect模块解析 。转载
文章地址:https://blog.csdn.net/zhangyuan19880606/article/details/51509205 1 Connect模块背景 Node.js的愿望是成为一个能 ...
- 彻底理解一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...
- ansible-playbook入门实例解析
[root@localhost tlsit]# ansible-playbook a.yml PLAY [test] ***************************************** ...
- mysql不存在插入否则更新
1.如果存在就更新,没有就插入,相当于三目运算 CREATE UNIQUE INDEX xxx ON t_msg_user_view(USER_ID); INSERT INTO xxx(user_id ...
- Djangon 基础总结 汇总 从请求到返回页面的过程,
第一步我是用户 现在 浏览器上输入地址 ---> 发送给服务 来请求返回当前的页面 第二步 服务端获得我当前的客户端要求访问的地址 第三步 服务端去urls.py中去,来看是要访问那个 ...
- Hi3536DV100 SDK 安装以及升级使用说明
第一章 Hi3536DV100_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章 首次安装SDK1.Hi3536DV100 SDK包位置 在"H ...
- linux shell创建目录、遍历子目录
1.创建目录 代码1: #!/bin/bash#如果没有tmp_dir目录则创建static_dir="/web/fyunw.com/static"if [ ! -d $staic ...
- Redis list数据结构
1. 更换命名空间 2.lpush 往列表里放入10个值 3. llen列表长度 4. lrange 列表范围 8. lset将第0个元素设置为88 9. lindex 获得第2个元素 10. lpo ...
- centos7 如何在用户级对资源进行限制
我们已经知道,centos7上建议使用sytemd进行资源限制. 本文主要介绍如何使用systemd进行用户级资源限制. 以orange用户为例. 方案一 临时有效 配置如下: # systemctl ...
- HanLP代码与词典分离方案与流程
之前在spark环境中一直用的是portable版本,词条数量不是很够,且有心想把jieba,swcs词典加进来, 其他像ik,ansi-seg等分词词典由于没有词性并没有加进来. 本次修改主要是采用 ...