首页 > 试题广场 >

面向对象的继承方式

[问答题]
1 原型链继承:将父类的实例作为子类的原型 ;纯粹的继承关系,实例时子类的实例也是父类的实例,父类增加的原型方法/属性,子类都可以访问;简单、易于实现;无法实现多继承,来自原型对象的所有属性被所有实例共享,创建子类实例时无法向父类构造函数传参
2 构造继承:使用父类的构造函数增强子类实例,等于复制父类的实例属性给子类;解决了字理实例共享父类引用属性的问题;创建子类实例时可以向父类传递参数;可以实现多继承;但是实例是子类的实例不是父类的实例,只能继承父类的实例属性和方法,不呢继承原型属性和方法;无法实现函数复用,每个子类都有父类实例函数的副本,影响性能;
3 实例继承:为父类实例添加新特性,作为子类实例返回;
不限制调用方式;实例是父类的实例不是子类的实例,不支持多继承
4 拷贝继承: 支持多继承
5
组合继承:通过调用父类的构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用;可以继承实例属性/方法,也可以继承原型的属性/方法,是子类的实例也是父类的实例,不存在引用属性共享的问题,可以传参,函数可以复用
发表于 2020-07-24 09:36:15 回复(0)