zoukankan      html  css  js  c++  java
  • 面向对象三大特性概述[封装、继承、多态](转)

    原文链接:面向对象三大特性概述[封装、继承、多态]

    封装:每个对象都包括自己进行操作所需要的所有信息,而不依赖于其他对象来完成自己的操作。这样的方法和属性通过类的实例来实现。

    好处:良好的封装可以降低耦合度;类的内部可以自由修改;类具有对外的清晰接口。

    继承:IS-A的关系。A is-a B:A是B,A可以继承B。A是B的一个特例,特殊化,A又可以具备自己独有的个性。三个点:

    1.子类拥有父类非private的属性和功能(父类的构造函数例外,可以用base关键字访问,base代表着父类);

    2.子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;

    3.子类可以以自己的方式重写父类的功能。

    缺点:父类变,子类不得不变,父子是一种强耦合的关系。

    多态:不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。三个注意点:

    1.子类以父类的身份出现;

    2.子类在运行时以自己的方式实现;

    3.子类以父类的身份出现时,子类特有的属性和方法不可以使用。

    为了使子类的实例完全接替来自父类的类成员,父类必须将该成员声明为虚拟的(virtual),子类可以选择使用override将父类的实现替换为自己的实现,这就是多态。

    原理:当方法被调用时,无论是否转换为其父类,都只有位于对象继承链最末端的方法实现会被调用。即,虚方法是按照运行时类型而非编译时类型进行动态绑定调用的。

  • 相关阅读:
    BZOJ 1143 [CTSC2008]祭祀river
    BZOJ 3997 [TJOI2015]组合数学
    BZOJ 3996 [TJOI2015]线性代数
    BZOJ 4553 [Tjoi2016&Heoi2016]序列
    微信开发之密文模式 mcrypt_module_open 走不过
    JS JSON & ARRAY 遍历
    linux ftp服务器配置(Ubuntu)
    thinkphp 吐槽篇
    游戏--疯狂猜字随机混乱正确答案逻辑
    PHP 批量去除BOM头;此文转载;
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/5260679.html
Copyright © 2011-2022 走看看