`
xp9802
  • 浏览: 1183707 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

继承的优缺点

阅读更多
继承的优缺点
优点
新的实现很容易,因为大部分是继承而来的
很容易修改和扩展已有的实现

缺点
打破了封装,因为基类向子类暴露了实现细节
白盒重用,因为基类的内部细节通常对子类是可见的
当父类的实现改变时可能要相应的对子类做出改变
不能在运行时改变由父类继承来的实现
由此可见,组合比继承具有更大的灵活性和更稳定的结构,一般情况下应该优先考虑组合。只


有当下列条件满足时才考虑使用继承:
子类是一种特殊的类型,而不只是父类的一个角色
子类的实例不需要变成另一个类的对象
子类扩展,而不是覆盖或者使父类的功能失效
2
1
分享到:
评论
1 楼 羽风之扬 2011-11-17  
貌似有点抽象,美女姐姐可不可以结合例子讲一下?

相关推荐

    继承的优缺点1

    1. 把接口继承和实现继承区分开 2. 使用抽象基类显式表示接口 3. 通过混入重用代码 4. 在名称中明确指明混入 5. 抽象基类可以作为混入,反过 6. 不

    JS继承实现方法及优缺点详解

    主要介绍了JS继承实现方法及优缺点详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    浅谈js中的三种继承方式及其优缺点

    下面小编就为大家带来一篇浅谈js中的三种继承方式及其优缺点。小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧

    6种JavaScript继承方式及优缺点(小结)

    主要介绍了6种JavaScript继承方式及优缺点(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    js实现继承的方法及优缺点总结

    主要给大家介绍了关于js实现继承的方法及优缺点的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    C++面试题集锦1

    介绍一下C++里面的多态?用 C语言实现 C++的继承23继承机制中对象之间如何转换?指针和引用之间如何转换?组合与继承优缺点?左值右值26移动构造函数26C语

    浅谈React高阶组件

    前段时间在工作中写Hybrid页面时遇到了这样的一个场景,公司需要一系列的活动组件,在每个组件注册的时候都需要调用App端提供的一个接口。一开始也考虑了几种方式,包括...1、Mixins的缺点 React官方已不推荐使用Mix

    深入理解JavaScript继承的多种方式和优缺点

    本文讲解JavaScript各种继承方式和优缺点。 注意: 跟《JavaScript深入之创建对象》一样,更像是笔记。 哎,再让我感叹一句:《JavaScript高级程序设计》写得真是太好了! 1.原型链继承 function Parent () { ...

    实现继承的多种方式及其优缺点

    function Person(name){ this.name = name this.num = function(){ ...// 特点:1、实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性。(新实例不会继承父类实例的属性!) /

    详细对比php中类继承和接口继承

    PHP类继承: 1、PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承 比如: class frist{ public function __construct(){ echo "我是第一个类。"," "; } public function printer(){ ...

    JavaScript中实现继承的八种方式

    详细介绍了JavaScript中继承的实现方式以及其优缺点分析。

    有关C++继承与友元、继承与类型转换详解

    实例如下: #include <iostream> using namespace std; class a{ friend class pal; private: int i; protected: int j; public: int k; }; class b:public a{ protected: int l; }; class c:protected a{}... }

    Android中TextureView与SurfaceView用法区别总结

    SurfaceView和TextureView均继承于android.view.View 与其它View不同的是,两者都能在独立的线程中绘制和渲染,在专用的GPU线程中大大提高渲染的性能。 一、SurfaceView专门提供了嵌入视图层级的绘制界面,开发者...

    maven聚合项目

    maven项目,主要是一些配置,如聚合和继承以及插件.私服等,项目按模块区分,多个子项目继承parent

    详解C++设计模式编程中策略模式的优缺点及实现

    主要介绍了C++设计模式编程中策略模式的优缺点及实现,文中讨论了策略模式中设计抽象接口的继承和组合之间的区别,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics