Typescript基础之类
TypeSprict — 类
JavaScript
通过构造函数实现类的概念,通过原型链实现继承。而在ES6
中,我们终于迎来了class
。TypeScript
除了实现了所有ES6
中的类的功能以外,还添加了一些新的用法。
TS
— 类的概念
- 类(
Class
):定义了一件事物的抽象特点,包含它的属性和方法- 对象(
Object
):类的实例,通过new
生成面向对象(
OOP
)的三大特性:封装、继承、多态
- 封装(
Encapsulation
):将对数据的操作细节隐藏起来,只暴露对外的接口。- 继承(
Inheritance
):子类继承父类,子类除了拥有父类的所有特性外,还有一些更具体的特性。- 多态(
Polymorphism
):由继承而产生了相关的不同的类,对同一个方法可以有不同的响应。存取器(
getter
&setter
):用以改变属性的读取和赋值行为- 修饰符(
Modifiers
):修饰符是一些关键字,用于限定成员或类型的性质。比如 public 表示公有属性或方法- 抽象类(
Abstract Class
):抽象类是供其他类继承的基类,抽象类不允许被实例化。
抽象类中的抽象方法必须在子类中被实现- 接口(
Interfaces
):不同类之间公有的属性或方法,可以抽象成一个接口。
接口可以被类实现(implements
)。一个类只能继承自另一个类,但是可以实现多个接口
创建一个简单的 ts 类
class
定义类,使用constructor
定义构造函数。通过new
生成新实例的时候,会自动调用构造函数。
1 | class Animal { |
继承
使用
extends
关键字实现继承,子类中使用super
关键字来调用父类的构造函数和方法。
1 | class Animal { |
public
/ private
/ protected
— 公共/私有/受保护的
public
— 公共
‘
public
‘修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 ‘public
‘的
1 | class Animal { |
private
— 私有的
当成员被标记成
private
时,它就不能在声明它的类的外部访问,简单的说,只有自己的class
内部可以访问,即使是自己的’实例’,’继承的子类’ 都无法访问被’private
‘修饰的内容
1 | class Animal { |
protected
— 受保护的
1.修饰的属性或方法是受保护的,它和
private
类似,区别是它在子类中也是允许被访问的,简单的 说’子类是可以访问protected
修饰的’ 实例是不可以的2.修饰的是’
constructor
‘ 则当前类不能创建实例
1 | class Animal { |
其他特性
readonly
— 只读属性
可以使用
readonly
关键字将属性设置为只读的。
1 | class Animal { |
静态属性 — static
修饰
1.’
ts
‘ 提供了 静态属性,属性和方法都是’static
‘ 修饰2.静态方法没法直接调用类里面的属性,当想要调用类里面的属性的时候需要声明静态的属性
1 | class Animal { |
ts
的 getter
/setter
使用
getter
和setter
来改变属性的赋值和读取行为
1 | class Animal { |
抽象类 abstract
- 抽象类是不允许被实例化的
- 继承抽象类的类必须去实现实例中的抽象类中的’抽象方法’和’抽象属性’
1 | abstract class Animal { |
评论