TypeScript--类
ts中定义类
class Person{name:string; //属性 前面省略了public关键词constructor(n:string){ //构造函数 实例化类的时候触发的方法this.name = n;}run():void{alert(this.name);}
}
var p = new Person('lisi');
p.run()
class Person{name:string;constructor(name:string){this.name = name;}getName():string{return this.name;}setName(name:string):void{this.name = name;}
}
var p = new Person('lisi');
alert(p.getName());
p.setName('wanwu');
alert(p.getName());
继承
class Person{name:string;constructor(name:string){this.name = name;}run():string{return `${this.name}在运动`;}
}
var p = new Person('lisi');
alert(p.run());class Web extends Person{constructor(name:string){super(name);}run():string{return `${this.name}在运动--子类`}work(){alert(`${this.name}在工作`)}
}var w = new Web('wanwu');
alert(w.run());
w.work();
修饰符
- public :公有 在当前类里面、 子类 、类外面都可以访问
- protected:保护类型 在当前类里面、子类里面可以访问 ,在类外部没法访问
- private :私有 在当前类里面可以访问,子类、类外部都没法访问
public
class Person{public name:string;constructor(name:string){this.name = name;}run():string{return `${this.name}在运动`;}
}
var p = new Person('lisi');
alert(p.run());class Web extends Person{constructor(name:string){super(name);}run():string{return `${this.name}在运动--子类`}work(){alert(`${this.name}在工作`)}
}
var w = new Web('wanwu');
alert(w.run());
protected
class Person{protected name:string;constructor(name:string){this.name = name;}run():string{return `${this.name}在运动`;}
}
var p = new Person('lisi');
alert(p.run());class Web extends Person{constructor(name:string){super(name);}run():string{return `${this.name}在运动--子类`}work(){alert(`${this.name}在工作`)}
}
var w = new Web('wanwu');
alert(w.run());
静态属性 静态方法
class Person{public name:string; /*公有属性*/static sex = '男' //静态属性constructor(name:string){this.name=name;}run():string{return `${this.name}在运动`}static print(){// alert('print方法'+this.name);alert('print方法'+Person.sex);}
}var p = new Person('lisi');
Person.print();
多态
多态:父类定义一个方法不去实现,让继承它的子类去实现,每一个子类有不同的表现
多态属性继承
父类有方法,子类也有同样的方法
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 +'吃骨头'}
}
var d = new Dog('d');
alert(d.eat());class Cat extends Animal{constructor(name:string){super(name);}eat(){return this.name +'吃鱼'}
}
var c = new Cat('c');
alert(c.eat());
父类有方法,子类没有同样的方法
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 +'吃骨头'}
}
var d = new Dog('d');
alert(d.eat());class Cat extends Animal{constructor(name:string){super(name);}// eat(){// return this.name +'吃鱼'// }
}
var c = new Cat('c');
alert(c.eat());
抽象类
抽象类:它是提供其它继承的基类,不能直接被实例化
- 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();
父类定义的抽象方法,子类没有定义,报错
abstract class Animal{public name:string;constructor(name:string){this.name = name;}abstract eat():any;run(){console.log('运动')}
}class Dog extends Animal{constructor(name:string){super(name);}// eat(){// console.log(this.name+'吃骨头')// }}
正常
类非抽象方法,子类可以不写
abstract class Animal{public name:string;constructor(name:string){this.name = name;}abstract eat():any;run(){console.log('运动')}
}class Dog extends Animal{constructor(name:string){super(name);}eat(){console.log(this.name+'吃骨头')}}var d = new Dog('d');
d.eat()class Cat extends Animal{constructor(name:string){super(name);}eat(){console.log(this.name+'吃鱼')}
}var c = new Cat('c');
c.eat()
TypeScript--类相关推荐
- .NET手撸绘制TypeScript类图——下篇
.NET手撸绘制TypeScript类图--下篇 在上篇的文章中,我们介绍了如何使用 .NET解析 TypeScript,这篇将介绍如何使用代码将类图渲染出来. 类型定义渲染 不出意外,我们继续使用 ...
- .NET手撸绘制TypeScript类图——上篇
.NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化, TypeScript越来越流行,前端的设计也越来复杂,而 类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方 ...
- typescript get方法_.NET手撸绘制TypeScript类图——上篇
.NET手撸绘制TypeScript类图--上篇 近年来随着交互界面的精细化,TypeScript越来越流行,前端的设计也越来复杂,而类图正是用简单的箭头和方块,反映对象与对象之间关系/依赖的好方式. ...
- TypeScript 类(Class)
TypeScript 类(Class) 自 ES6 起,终于迎来了 class,对于开发者来说,终于可以使用基于类的面向对象式编程.TypeScript 在原 ES6 中类的基础上,还添加了一些新的功 ...
- 三分钟快速了解typeScript 类
typeScript 类 类描述了所创建的对象共同的属性和方法. 类的定义 继承 类里面的修饰符 静态属性 静态方法 抽象类 继承 多态 类的定义 class person {name:string; ...
- Typescript类,泛型,各种类型工具
一.TypeScript 类 一个类可以包含以下几个模块: 1.属性 1.1 类属性 1.2 实例属性 2.构造函数(在python中叫初始化函数) 该函数在类实例化时会被立即调用 3.方法(也是函数 ...
- 05 TypeScript 类的使用
目录 1.1 类的基本使用 1.2 类的继承 1.3 static和instanceof 1.4类中的修饰符 1.5 getter与setter 1.6 抽象类 1.7 implements子句 1. ...
- TypeScript类
目录 1-1.类的基本使用 1-2.类的继承 1-3.static与instanceof 1-4.类中的修饰符 1-5.getter与setter 1-6.抽象类 1-7.implements子句 1 ...
- TypeScript = 类
TypeScript笔记 5. TypeScript => 类 // 1. ts如何定义类 /* class Person {name:string;constructor(name:strin ...
- TypeScript 接口和TypeScript类
目录 一.TypeScript 接口 1.TypeScript 接口的定义和简单使用 2.联合类型和接口 3.接口和数组 4.接口继承 二.TypeScript 类 1.TypeScript 类的定义 ...
最新文章
- 解决烦人的img与input不能水平对齐的问题
- node建立博客系统遇到的问题,1,乱码。2,multer的使用错误。3使用session问题...
- Linux下使用popen()执行shell命令
- OpenCV3.0.0下的视频稳像代码,效果不错哦
- 微服务框架Go-Micro集成Nacos实战之服务注册与发现
- 最精美详尽的 HTTPS 原理图
- 如何优雅地在云上“摆摊” 直播带货,这些技术很重要
- 怎么才能在APP里实现移动端车牌识别功能?
- vc++开发学习二(模态对话框和非模态对话框的创建和销毁)
- 软件间对接时,常用的接口类型和协议类型有哪些
- 基因编辑最新进展2021年5月
- 谷歌邮箱SMTP小白教程
- 51单片机最小系统板
- 智慧云教育平台实战项目笔记
- 浙江大学计算机学院 金小刚,金小刚-虚拟现实与交互技术研究院
- 网络使用工具HttpWatch的使用方法
- 考过证券从业资格证的朋友们用的什么APP呢?
- 地理科学与计算机技术的关系,地理信息系统与地理学的关系
- CSDN取消手机绑定
- 力扣1845——座位预约管理系统(优先队列)