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. Linux/UNIX编程:获取指定用户所有正在运行的进程ID和进程名

    先用系统函数 `getpwnam` 获得指定用户名的 UID,然后遍历 /proc/ 中所有 PID 目录,如果 /proc/PID/status 中的 UID 是输入用户名对应的 UID 则输出该 ...

  2. 关于使用详解ASP.NET State Service

    ASP.NET State Service服务如果启动可以解决这个问题,它会生成一个aspnet_state.exe进程,这个就是Session信息的进程.只要这个进程在,就算是重启了IIS,站点的S ...

  3. Codeforces_831

    A.线性判断. #include<bits/stdc++.h> using namespace std; ] = {}; int main() { ios::sync_with_stdio ...

  4. 业余无线电A类考试准备笔记

    在线模拟自测地址:https://liunan.github.io/crac/ 共361题,到LK0074 1004/2890行 Key Word: 要合法 要服从管理 Note: 无线电管理 最高法 ...

  5. [Effective Java 读书笔记] 第6章 枚举和注解

    第三十条 用enum代替int 总得来说,使用enum有几点好处 1.编译时的类型安全, 2.可以保证就是自己定义的值,不会有月结风险, 3.每个枚举类型有自己的命名空间 4.枚举可以添加任意的方法和 ...

  6. 图像里的"白噪声"——电视机搜不到台时雪花斑点的形成原因

    作者:❄️固态二氧化碳❄️ (主页) 链接:图像里的"白噪声"--电视机搜不到台时雪花斑点的形成原因 - 固态二氧化碳的博客 - CSDN博客 来源:CSDN博客 发表时间:201 ...

  7. linux web站点常用压力测试工具httperf

    一.工具下载&&安装 软件获取 ftp://ftp.hpl.hp.com/pub/httperf/ 这里使用的是如下的版本 ftp://ftp.hpl.hp.com/pub/httpe ...

  8. light oj1028 - Trailing Zeroes (I)

    1028 - Trailing Zeroes (I)   We know what a base of a number is and what the properties are. For exa ...

  9. Rust学习--变量

    0x0 每种编程语言都有变量的概念,我们可以把变量理解为最简单的存储方式,它是编码过程中是必不可少的. Rust的变量很有特色.变量不可变的特性让人想起了Erlang.以及后面的模式匹配,我觉得作者应 ...

  10. Linux运维--12.手动部署Rabbit集群

    1.安装rabbit组件 10.100.2.51 controller1 10.100.2.52 controller2 10.100.2.53 controller3 #每个节点 yum insta ...