1、类的定义

//ts定义类和ES6相似,不同的是属性需要修饰符并定义数据类型
class Person{
public name:string;
constructor(n:string){
this.name=n;
}
run():void{
console.log(this.name);
}
}
var p=new Person('张三');
p.run()

2、类里面的修饰符

  public :公有,在当前类里面、 子类 、类外面都可以访问
  protected保护类型,在当前类里面、子类里面可以访问 ,在类外部没法访问
  private私有,在当前类里面可以访问,子类、类外部都没法访问
  属性如果不加修饰符 默认就是 公有 (public)

3、类的继承

//ts类的继承和ES6相似,extends 和 super
class Person{
name:string;
constructor(name:string){
this.name=name;
}
run():string{
return `${this.name}在运动`
}
}
var p=new Person('张三');
alert(p.run()) class Web extends Person{
constructor(name:string){
super(name); /*初始化父类的构造函数*/
}
}
var w=new Web('李四');
alert(w.run());

4、多态(属于继承)

//多态:父类定义一个方法不去实现,让继承它的子类去实现  每一个子类有不同的表现
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+'吃鱼'
}
}

5、静态属性及方法

//属性及方法前面加static,就是静态属性及方法
class Person{
public name:string;
static age = 20 //静态属性
constructor(name:string){
this.name = name;
}
//实例方法
run(){
console.log(`${this.name}在运动`)
}
//静态方法
static work(){
console.log(`我今年${Person.age}岁`)
}
}
//调用实例化方法
var p = new Person('张三')
p.run();
//调用静态方法及属性
Person.work();
Person.age;

6、抽象方法

//类及方法前加关键词 abstract,就是抽象类及抽象方法
//抽象方法只能放在抽象类里面
abstract class Animal{
public name:string;
constructor(name:string){
this.name = name;
}
//抽象方法不包含具体实现,并且必须在派生类中实现
abstract eat():void;
}
class Dog extends Animal{
constructor(name:string){
super(name)
}
//抽象类的子类必须实现抽象类里面的抽象方法
eat(){
console.log(this.name + '吃粮食')
}
}
var d = new Dog('小狗');
d.eat();

04_TypeScript类的更多相关文章

  1. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  2. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  6. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  7. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  9. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

随机推荐

  1. C++类中拷贝构造函数详解

    a. C++标准中提到"The default constructor, copy constructor and copy assignment operator, and destruc ...

  2. CentOS 使用yum安装 pip

    pip这个功能很不错,可以用来下载很多东西. 笔者使用的是CentOS Linux release 7.2.1511 (Core)这个版本. 查询版本的语句: cat /etc/redhat-rele ...

  3. 视觉slam十四讲课后习题ch3--5题

    题目回顾: 假设有一个大的Eigen矩阵,我想把它的左上角3x3块提取出来,然后赋值为I3x3.编程实现.解:提取大矩阵左上角3x3矩阵,有两种方式: 1.直接从0-2循环遍历大矩阵的前三行和三列 2 ...

  4. WeChall_Encodings: URL (Training, Encoding)

    Your task is to decode the following: %59%69%70%70%65%68%21%20%59%6F%75%72%20%55%52%4C%20%69%73%20%6 ...

  5. VMware Workstation 14 Pro 安装 CentOS 7 Linux 虚拟机

    CentOS 7 下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/ ,选择 CentOS-7-x86_64-DVD-1908.iso : ...

  6. JFrame的BorderLayout

    JFrame的默认布局就是BorderLayout,即将一个窗体划分为东西南北中五个板块. 如果往其中添加组件,中间面板大小随窗体大小变化,其余部分根据添加的组件的大小自适应. 容器变高,则North ...

  7. [redis读书笔记] 第二部分 sentinel

    1.sentinel的初始化,会制定master的IP和port,然后sentinel会创建向被监视主服务器的命令连接和订阅连接: -  命令连接是用来和主服务器之间进行命令通信的 - 订阅连接,用于 ...

  8. k8s调度器kube-scheduler

    kube-scheduler简介 调度是容器编排的重要环节,需要经过严格的监控和控制,现实生产通常对调度有各类限制,譬如某些服务必须在业务独享的机器上运行,或者从灾备的角度考虑尽量把服务调度到不同机器 ...

  9. ORB-SLAM2 论文&代码学习 —— LoopClosing 线程

    转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12369339.html 本文要点: ORB-SLAM2 LoopC ...

  10. 2020-2-27今日总结——滚动监听&导航

    利用Bootstrap 开发工具实现滚动监听 (此文只做学习路上的归纳分享总结用,如有侵权,请联系我删除) 使用滚动监听,比较特殊,要在body中设置scroll,以及触点. 很好理解,因为滚动是多对 ...