7、TypeScript 类(class)
2022-03-31 13:51:06 0 举报
AI智能生成
TS学习笔记
作者其他创作
大纲/内容
类(Class)定义了一件事物的抽象特点,包含它的属性和方法
主要用于初始化类的成员变量属性
类的对象创建时自动调用执行
没有返回值
构造函数: constructor
以上述为例
定义类
使用 extends 关键字实现继承,子类中使用 super 关键字来调用父类的构造函数和方法。
实现
子类继承父类后子类的实例就拥有了父类中的属性和方法,可以增强代码的可复用性
将子类共用的方法抽象出来放在父类中,自己特殊逻辑放在子类中重写父类的逻辑
super 可以调用父类上的方法和属性 (相当于ES5的:在静态方法和构造函数中指向父类; 在原型方法中指向父类的prototype;)
类的继承
TypeScript 中有三类访问修饰符,分别是: public、private、protected。不写默认为 public;和一个只读修饰符 readonly
公共的
自己、自己的子类、其他类都可以访问
public
受保护的
自己、自己的子类都能访问,其他类不能访问
protected
私有的
只有自己能访问,子类和其他类不能访问
private
外框
访问修饰符
Father:父类; child: 子类; children: 子类的实例(在这里属于其他)
private: 该类不允许被继承或者实例化
protected: 该类只允许被继承
当修饰内容为构造函数时
举个🌰
修饰的变量只能在属性声明时 或 构造函数 中初始化
仅读属性只能在constructor中被赋值
readonly 只是在 编译阶段进行代码检查。运行时依然能打印
编译时异常
编译时
依然更改了 name 属性
运行时
注意
readonly
只读修饰符
在上面的例子中,都是在类的定义的顶部初始化实例属性,在 constructor 里接收参数然后对实例属性进行赋值,参数属性就是为了简化这一过程的
直接在 constructor 构造函数的参数前面加上修饰符 => 等同于在类中定义该属性同时给该属性赋值,使代码更简洁。
参数属性
类的修饰符
可以通过 getter/ setter来改变一个类中属性的读取和赋值行为
存取器
使用 static 修饰符修饰的方法称为静态方法,它们不需要实例化,而是直接通过类来调用
个人理解为:类的对象角色下的属性方法
静态属性和方法 static
使用 abstract 关键字来定义抽象类和 在抽象类内部定义抽象方法。
抽象描述一种概念,做为其它类的基类使用
无法创建抽象类的实例,抽象类只能被继承
抽象类
抽象方法不能在抽象类中实现,只能在抽象类的具体子类中实现,而且必须实现
抽象方法只能出现在抽象类中
特点
子类可以对抽象类进行不同的实现
抽象方法
抽象类和方法 abstract
TypeScript 类(class)
详情见7-1
0 条评论
回复 删除
下一页