基础面向对象知识
类和对象
类
类就是一类事物的抽象,使用 class 进行声明
对象
对象就是一个实实在在的事物,就代码层面来说一般是某个类的实例,通过new
关键字进行实例化。
面向对象三要素
继承、封装、多态
继承
目的:公共属性方法的提升,减少代码重复
extends
使用 extends 关键字来实现继承父类
js
class Child extends Parent {
// ...
}
super 关键字,在constructor
构造函数中,可以直接使用 super 来继承父类的属性
封装
目的:高内聚,低耦合
可见性修饰符
TS 中
- public 所有的都可以访问
- protected 只有在当前类或者子类中访问,在实例中访问不了
- private 只有在当前类中可以访问,不能被子类继承,不能通过 super 关键字访问,子类、实例中都不可以通过
.属性名
进行访问
JS 中
- 没有 public、private 关键字这一说,没有 protected。
- 默认类中变量名前面有
#
就是 private 私有属性,没有#
就是 public 公有属性
多态
目的:子类有更多扩展性,更自由
重写
对原父类的方法代码进行修改,替换成自己想要的样子
重载
对方法参数进行扩展