继承基础定义及方法

tech2022-07-15  193

继承

继承是一种机制,继承的子类可以直接使用父类的属性和方法。 注:不是父类中的所有属性和方法都可以被子类使用(private不可被继承,父类的构造方法不能被继承)。 简单来说: 继承可以提高代码的复用性

继承的方法

原型链继承 ()

基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。

缺点:

1通过原型来实现继承时 原型》》》》另一个实例 实例》》》现在原型

原型的引用类型属性会被所有的实例共享。

2创建子类型的实例,给父类型的构造函数传递参数时 会影响所有对象实例

2.借用构造函数

基本思想:在子类型的构造函数中调用父类型构造函数

优点:

1可以向类父传递参数

2.解决了原型的引用类型属性会被共享的问题

缺点:方法都在构造函数中定义,无法函数复用, 父类型的方法对子类型是不可用的

3.组合继承(原型链 + 借用构造函数)

组合继承指的是将原型链和借用构造函数技术组合到一块,从而发挥二者之长的一种继承模式

基本思路:使用原型链实现对原型属性和方法的继承,通过借用构造函数来实现对实例属性的继承

缺点:

调用两次父类型构造函数:一次是在创建子类型原型,另一次是在子类型构造函数内部。

优点:

可以向超类传递参数 每个实例都有自己的属性 实现了函数复用

1. 原型式继承

基本思想:借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型。 缺点:同原型链实现继承一样,包含引用类型值的属性会被所有实例共享。

2. 寄生式继承

寄生式继承是与原型式继承紧密相关的一种思路。寄生式继承的思路 与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数, 该函数在内部已某种方式来增强对象,最后再像真地是它做了所有工作一 样返回对象

缺点:使用寄生式继承来为对象添加函数,会由于不能做到函数复用而效率低下

2.同原型链实现继承一样,包含引用类型值的属性会被所有实例共享。

**最后的 —寄生组合式继承 **

最新回复(0)