typescript静态属性,静态方法,抽象类,多态
Posted spinoza
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript静态属性,静态方法,抽象类,多态相关的知识,希望对你有一定的参考价值。
1 /* 2 1、vscode配置自动编译 3 4 1.第一步 tsc --inti 生成tsconfig.json 改 "outDir": "./js", 5 6 7 2、第二步 任务 - 运行任务 监视tsconfig.json 8 9 10 2、typeScript中的数据类型 11 12 typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,在typescript中主要给我们提供了以下数据类型 13 14 15 布尔类型(boolean) 16 数字类型(number) 17 字符串类型(string) 18 数组类型(array) 19 元组类型(tuple) 20 枚举类型(enum) 21 22 任意类型(any) 23 null 和 undefined 24 void类型 25 never类型 26 27 3、typeScript中的函数 28 29 3.1、函数的定义 30 3.2、可选参数 31 3.3、默认参数 32 3.4、剩余参数 33 3.5、函数重载 34 3.6、箭头函数 es6 35 4、typeScript中的类 36 37 4.1 类的定义 38 4.2 继承 39 4.3 类里面的修饰符 40 41 4.4 静态属性 静态方法 42 4.5 抽象类 多态 43 44 45 */ 46 47 48 // 静态属性 静态方法 49 50 /* 51 52 function Person(){ 53 this.run1=function(){ 54 55 } 56 } 57 Person.name=‘哈哈哈‘; 58 59 Person.run2=function(){ 静态方法 60 61 62 } 63 var p=new Person(); 64 65 Person.run2(); 静态方法的调用 66 */ 67 68 69 70 /* 71 72 73 function $(element){ 74 75 return new Base(element) 76 } 77 78 $.get=function(){ 79 80 } 81 82 function Base(element){ 83 84 this.element=获取dom节点; 85 86 87 this.css=function(arr,value){ 88 89 this.element.style.arr=value; 90 } 91 } 92 93 94 95 $(‘#box‘).css(‘color‘,‘red‘) 96 97 98 $.get(‘url‘,function(){ 99 100 }) 101 */ 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 // class Per{ 117 // public name:string; 118 // public age:number=20; 119 // //静态属性 120 121 // static sex="男"; 122 // constructor(name:string) { 123 // this.name=name; 124 // } 125 // run(){ /*实例方法*/ 126 127 // alert(`${this.name}在运动`) 128 // } 129 // work(){ 130 131 // alert(`${this.name}在工作`) 132 // } 133 // static print(){ /*静态方法 里面没法直接调用类里面的属性*/ 134 135 // alert(‘print方法‘+Per.sex); 136 // } 137 // } 138 139 // // var p=new Per(‘张三‘); 140 141 // // p.run(); 142 143 // Per.print(); 144 145 // alert(Per.sex); 146 147 148 149 150 151 152 //多态:父类定义一个方法不去实现,让继承它的子类去实现 每一个子类有不同的表现 153 154 //多态属于继承 155 /* 156 157 158 class Animal { 159 160 name:string; 161 constructor(name:string) { 162 this.name=name; 163 } 164 eat(){ //具体吃什么 不知道 , 具体吃什么?继承它的子类去实现 ,每一个子类的表现不一样 165 console.log(‘吃的方法‘) 166 } 167 } 168 169 class Dog extends Animal{ 170 constructor(name:string){ 171 super(name) 172 } 173 eat(){ 174 175 return this.name+‘吃粮食‘ 176 } 177 } 178 179 180 class Cat extends Animal{ 181 182 constructor(name:string){ 183 super(name) 184 } 185 186 eat(){ 187 188 return this.name+‘吃老鼠‘ 189 } 190 } 191 192 */ 193 194 195 196 //typescript中的抽象类:它是提供其他类继承的基类,不能直接被实例化。 197 198 199 //用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。 200 201 202 // abstract抽象方法只能放在抽象类里面 203 204 205 // 抽象类和抽象方法用来定义标准 。 标准:Animal 这个类要求它的子类必须包含eat方法 206 207 208 //标准: 209 210 abstract class Animal{ 211 212 public name:string; 213 constructor(name:string){ 214 215 this.name=name; 216 217 } 218 abstract eat():any; //抽象方法不包含具体实现并且必须在派生类中实现。 219 220 run(){ 221 222 console.log(‘其他方法可以不实现‘) 223 } 224 } 225 226 227 // var a=new Animal() /*错误的写法*/ 228 229 230 231 class Dog extends Animal{ 232 233 //抽象类的子类必须实现抽象类里面的抽象方法 234 constructor(name:any){ 235 super(name) 236 } 237 eat(){ 238 239 console.log(this.name+‘吃粮食‘) 240 } 241 } 242 243 var d=new Dog(‘小花花‘); 244 d.eat(); 245 246 247 248 249 class Cat extends Animal{ 250 251 //抽象类的子类必须实现抽象类里面的抽象方法 252 constructor(name:any){ 253 super(name) 254 } 255 run(){ 256 257 258 } 259 eat(){ 260 261 console.log(this.name+‘吃老鼠‘) 262 } 263 264 } 265 266 var c=new Cat(‘小花猫‘); 267 c.eat();
以上是关于typescript静态属性,静态方法,抽象类,多态的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript核心篇——类(class)-可选参数-存取器-构造函数-静态属性方法-抽象类
TypeScript中的类』五分钟掌握ts的类,你也能月入1.5w+
TypeScript,面向对象,类、构造函数、继承、抽象类、接口和封装
PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结