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 ...
随机推荐
- go build Multiple main.go file
golang 如何编译同目录下多个main文件? 多个go 文件在相同目录编译时候会报错, 可将文件放在不同的package下,结构如下: buidtest/├── a│ └── a.go└── ...
- Centos7快速安装haproxy
HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...
- tile38 一款开源的geo 数据库
tile38 是基于golang 编写的geo 数据库,支持地理空间索引.实时地理围栏,同时也支持leader-flower 的部署模型 备注: 下边测试一个简单的地理围栏功能 环境准备 docker ...
- Python中字典get方法的使用
Python中字典get方法的使用 说起来,这个功能是否需要学习还真是有待于讨论.其实,知道了字典这种数据结构以后,通过最基本的Python功能也能够实现一个类似的功能.不过,既然内置了这个功能那么我 ...
- 你不知道的JavaScript(上卷) (Kyle Simpson 著)
第一部分 作用域和闭包 第1章 作用域是什么 (已看) 1.1 编译原理 1.2 理解作用域 1.2.1 演员表 1.2.2 对话 1.2.3 编译器有话说 1.2.4 引擎和作用域的对话 1.2.5 ...
- 使用OpenCV进行人脸识别
不断维护的地址:http://plzcoding.com/face-recognition-with-opencv/ 怎样使用OpenCV进行人脸识别 本文大部分来自OpenCV官网上的Face Re ...
- DOM Access and Manipulation JS 操纵DOM
JS 操纵DOM 有两种很简单的方式: 如果知道ID 的情况下. 我们可以使用 document.getElementById 我们还可以使用 document.getElementById(&quo ...
- java数据类型取值范围
1个字节:boolean, byte 2个字节:short, char 4个字节:int, float 8个字节:long, double 按照我们初学者的理解1byte=8bit,也就是说1个字节可 ...
- python多线程、多进程相关知识
Queue Queue用于建立和操作队列,常和threading类一起用来建立一个简单的线程队列. 首先,队列有很多种,根据进出顺序来分类,可以分成 Queue.Queue(maxsize) FIFO ...
- Typescript学习总结1
Typescript字符串处理 首先打开运行Typescript的编辑器 http://www.typescriptlang.org/play/index.html 1. 调用变量和方法 var my ...