/*
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静态属性,静态方法,抽象类,多态的更多相关文章

  1. python面向对象之静态属性/静态方法/类方法/组合

    继续学习,不要松懈 #!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self ...

  2. 面向对象:静态属性,静态方法,组合,继承,衍生,继承之mro线性顺序列表,面向对象综合实例

    1.静态属性(附有装饰器) class Room: def __init__(self,name,owner,width,length,height): self.name=name self.own ...

  3. ReactiveCocoa源码解析(四) Signal中的静态属性静态方法以及面向协议扩展

    上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...

  4. ReactiveSwift源码解析(四) Signal中的静态属性静态方法以及面向协议扩展

    上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...

  5. springboot中静态属性/静态方法从YAML(yml)读取配置属性

    启动类添加注解@EnableConfigurationProperties import jnetman.session.SnmpPref; import org.springframework.bo ...

  6. js静态属性,实例属性,封装性,prototype,__proto__综合解析

    原创作品,转载请注明来源,sogeisetsu,我的csdn上也有这篇文章csdn js静态属性,实例属性,封装性,prototype,__proto__综合解析 下面是我在写博客的源代码,您可以先不 ...

  7. java中静态属性和和静态方法的继承问题 以及多态的实质

    首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里 ...

  8. PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

      前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象 ...

  9. Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法

    一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...

随机推荐

  1. python使用dns轮循检测web服务器是否异常

    我使用的是python2.7,我本来另装了一个python3.6,发现无法安装dnspython,于是只能换回来了 import dns.resolver #这个需要另外下载并安装(下载地址www.d ...

  2. MySQL Replication--复制异常1

    ============================================== 问题描述: 1.从库环境:MySQL 5.7.19,主从都开启GTID模式 2.MySQL数据目录所有者被 ...

  3. 学生信息管理 和ROM常见的操作

    ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...

  4. Restaurant & Cooking Starter Kit v1.2.1 学习

    项目: using UnityEngine; using System.Collections; namespace VoidGame { public class Constant : MonoBe ...

  5. mysql-sql语言参考

    字段去重查询 select distinct style from music 批量修改某字段 update music set style = "ost"  where styl ...

  6. 单节点 Elasticsearch 出现 unassigned shards 原因及解决办法

    根本原因: 是因为集群存在没有启用的副本分片,我们先来看一下官网给出的副本分片的介绍: 副本分片的主要目的就是为了故障转移,正如在 集群内的原理 中讨论的:如果持有主分片的节点挂掉了,一个副本分片就会 ...

  7. SQL数据库简单操作

    sql语言简介 (1)数据库是文件系统,使用标准sql对数据库进行操作 * 标准sql,在mysql里面使用语句,在oracle.db2都可以使用这个语句 (2)什么是sql * Structured ...

  8. ThinkPHP5与JQuery实现图片上传和预览效果

    内容正文 这篇文章主要为大家详细介绍了thinkphp上传图片功能,和jquery预览图片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先上效果图: html和js代码如下: <!DO ...

  9. python selenium-webdriver 生成测试报告 (十四)

    测试最后的一个重要的过程就是生成一份完整的测试报告,生成测试报告的主要是通过python的一个第三方模块HTMLTestRunner.py生成,但是生成的测试报告不是特别的美观,而且没有办法统计测试结 ...

  10. VMware下ubuntu与Windows实现文件共享的方法 (转)

    最近安装caffe需要将Windows下文件拷贝到ubuntu16.04下,就进行了共享文件夹的设置,期间遇到一些困难,记录下来,方便以后遇到此类问题不再困惑. (记录只为更好的分享) 言归正传: 1 ...