这是我参与「第五届青训营 」伴学笔记创作活动的第 18 天
-
继承:extends
- 语法:class B extends A{ .... }
- 子类有父类的属性与函数方法(包括构造方法),同时子类还可以重写父类中的方法。类似于java
- 在类的方法中,super表示当前类的父类
- 当子类重写构造函数时,必须保证在子类的构造函数中调用父类的构造函数,目的是确定继承的完整性
-
抽象类 abstract
- 语法:abstract class A{....}
- 作用:抽象类只能用于被继承,无法被实例化
-
抽象方法:abstract xxxx()
- 抽象方法用abstract开头,没有方法体
- 当子类继承抽象类后,必须对其中的抽象方法进行重写
-
接口:interface
- 语法:interface xxx{ ... }
- 实现接口:class A implements xxx{....}
- 接口只定义对象的结构,而不考虑其实际值。在接口中的所有属性和方法都是抽象的,不能有实际值
-
封装属性
-
定义:在TS中,为了保证类的安全,我们在声明类中属性时可以在前追加修饰符---public、protected、private
- public:默认。公开,所有环境都可以直接访问与修改该属性值
- protected:仅有父类以及其子类可以直接访问与修改该属性值
- private:仅有类本身可以访问,修改通常需要通过getter/setter方法
-
在TS中我们可以给属性定义getter/setter方法来完善对其属性值的修改,比如修改年龄age,我们可以通过setter方法来判定修改的值是否大于0才允许修改
-
-
泛型:代指不确定的类型或多个类型
-
在定义类或函数时,如果遇到类型不明确的就可以使用泛型
-
语法: function 方法名(参数:T):T{...}
-
调用:
-
自动检测类型
-
主动设置类型
-
-
多个泛型方法
-
泛型还可以继承 ,比如说 function fn4(a:T):T{ .... }
- 其中myClass是我自定的类,这里的泛型需要是myClass的实现类、子类....
-