使用class + 类名 即可定义一个类,一个类中通常有3个成员:属性、构造函数、方法;

在类内部引用属性或方法事使用this调用,它表示我们访问的是类的成员。

我们使用new构造了Greeter类的一个实例。 它会调用之前定义的构造函数,创建一个Greeter类型的新对象,并执行构造函数初始化它。

 class People{
// 1.声明 name 变量
public name:string; // 2.构造函数
// 构造函数在外部无法直接访问
// 只在实例化的时候才执行,且仅仅执行 1 次
// 构造函数用于在实例化某对象时必须添加某属性
// 本例:实例化People时必须添加姓名,否则报错
constructor(name){
this.name=name;
}
// 3.方法
sayname(){
console.log(this.name);
}
} /*
*使用new对类进行实例化
*/
let li=new People('li');
// 实例化 xiao 时没有设置 name 属性值,报错
let xiao=new People();
li.sayname(); class Stu{
// 和上面例子对比可将 name 声明直接移动至 constructor 内
constructor(public name:string,age:string){ }
// constructor内添加 public/private/protected 对变量进行声明后此处可用 this.name调用,否则不可调用
// age 没有声明所以无法调用
say(){
console.log(this.name);
console.log(this.age);
}
} // 必须设置 name 属性值
let chen=new Stu();

构造函数要求实例化时必须设置name属性值,没有设置值具体报错信息如下:

继承

在TypeScript里,我们使用extends来创建子类。你可以看到HorseSnake类是基类Animal的子类,并且可以访问其属性和方法。

这个例子演示了如何在子类里可以重写父类的方法。 Snake类和Horse类都创建了move方法,重写了从Animal继承来的move方法,使得move方法根据不同的类而具有不同的功能。 注意,即使tom被声明为Animal类型,因为它的值是Horsetom.move(34)调用Horse里的重写方法:

包含constructor函数的派生类必须调用super(),它会执行基类的构造方法。

super的用法说明:

1. 子类的构造函数必须调用父类的构造函数,就是这么规定的
   constructor(name:string , sid:string){
super(name);
  }

2. super.functonName( ) 可以调用父类的其它方法

 class Animal{
public name:string; constructor(name:string){
this.name = name;
}
move(distanceMetres:number = 0){
console.log(`${this.name} moved ${distanceMetres}m`);
}
} class Snake extends Animal{
public age:string;
constructor(name:string,age:string){
super(name);
this.age=age;
}
move(distanceMetres=5){
console.log("snake...");
super.move(distanceMetres);
}
sayage(age){
alert(`${this.age}`);
}
} class Horse extends Animal{
constructor(name:string){
super(name);
}
move(distanceMetres=10){
console.log("horse...");
super.move(distanceMetres);
}
} let sam = new Snake('xiaobao','30');
let tom:Animal = new Horse('tommy'); // sam.move();
sam.sayage(this.age);
// console.log(sam.age);
// tom.move(150);

《Typecript 入门教程》 1、类的更多相关文章

  1. 《Typecript 入门教程》 3、接口

    转载:<TypeScript 中文入门教程> 3.接口 介绍 TypeScript的核心原则之一是对值所具有的shape进行类型检查. 它有时被称做“鸭式辨型法”或“结构性子类型化”. 在 ...

  2. 《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly

    声明类的属性和方法时可以设置使用访问控制符,访问控制符设置类的属性和方法能不能在类的外部被访问 1. 默认为 public,使用public定义的属性和方法在类的内部和外部都可以访问 2. priva ...

  3. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  4. 转载:TypeScript 简介与《TypeScript 中文入门教程》

    简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...

  5. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  6. WCF入门教程(五)配置文件

    WCF入门教程(五)配置文件 服务协定以及实现写好后,需要将相关服务公布出去,就需要HOST来承载,供客户端来调用. 承载服务有两种方式,一种通过配置文件,一种通过代码进行配置.上一章已经介绍了代码方 ...

  7. WCF入门教程(三)定义服务协定--属性标签

    WCF入门教程(三)定义服务协定--属性标签 属性标签,成为定义协议的主要方式.先将最简单的标签进行简单介绍,以了解他们的功能以及使用规则. 服务协定标识,标识哪些接口是服务协定,哪些操作时服务协定的 ...

  8. WCF入门教程(二)如何创建WCF服务

    WCF入门教程(二)从零做起-创建WCF服务 通过最基本的操作看到最简单的WCF如何实现的.这是VS的SDK默认创建的样本 1.创建WCF服务库 2.看其生成结构 1)IService1.cs(协议) ...

  9. WCF入门教程(一)简介

    WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foundation), 是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NE ...

随机推荐

  1. Python数据库连接池DBUtils(基于pymysql模块连接数据库)

    安装 pip3 install DBUtils DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: # BDUtils数据库链接池: 模式一:基于threaing ...

  2. NFS文件服务

    安装NFS服务 Yum install nfs-utils –y 2.关闭防火墙 service iptables stop 3./etc/exports NFS服务配置文件 /home/share ...

  3. 统计nginx日志里每五分钟的访问量

    #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Random_lee import time import os import re cla ...

  4. AOP基础

    [Why AOP ?] 1.代码混乱:越来越多的非业务需求(日志和验证等)加入后,原有的业务方法急剧膨胀.每个方法在处理核心逻辑的同时还必须兼顾其他多个关注点. 2.代码分散:以日志需求为例,知识为了 ...

  5. 【14】AngularJS 表单

    AngularJS 表单 AngularJS 表单是输入控件的集合. HTML 控件 以下 HTML input 元素被称为 HTML 控件: input 元素 select 元素 button 元素 ...

  6. 55. spring boot 服务配置和部署【从零开始学Spring Boot】

    Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...

  7. Codeforces Round #240 (Div. 2) C Mashmokh and Numbers

    , a2, ..., an such that his boss will score exactly k points. Also Mashmokh can't memorize too huge ...

  8. uestc 1903

    #include<stdio.h> int main() { int n,m,i,t; scanf("%d",&t); while(t--){ scanf(&q ...

  9. SpringBoot 拦截器--只允许进入登录注册页面,没登录不允许查看其它页面

    SpringBoot注册登录(一):User表的设计点击打开链接 SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册--验证 ...

  10. Spring的Java配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1     @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration ...