zoukankan      html  css  js  c++  java
  • Python面向对象的三大特点:封装,继承和多态

      封装 enclosure 

      封装是指隐藏类的实现细节,方便其他人的调用。

      封装的目的:

      让使用者可以通过间接调用方法或属性操作对象。

      所以Python使用封装时,必会使用私有属性和方法。

    私有属性和方法:
      以‘__’双下划线开头,不以双下滑线结尾的表示符为私有成员,
      私有成员只能使用该类的方法,来进行访问和修改
        1. 以__开头的属性为私有属性  如__vol
        2. 以__开头的方法为私有方法  如__vol()

      注:python封装是假的封装(模拟的封装)

      比如通过dir查看属性就可以发现,其实私有属性被变成了_class__xx,所以才无法访问

    多态 polymocphic
      字面意思:‘多种状态’
      多态是指在有继承/派生关系的类中,调用基类对象的方法,实际能调用子类的覆盖方法的现象叫多态

      状态:
        静态(编译时状态)
        动态(运行时状态)
      说明:
        1,多态调用的方法与对象相关,不与类型相关
        2,Python全部对象都只有“运行时状态(动态)”
        没有C++语言里的编译时状态(静态)

    继承 inheritance

      继承是从已有的类中派生出新的类,新类具有原类的数据属性和行为,并

      能拓展新的行为

    继承的目的:

      延续旧类的功能

    单继承
      语法:
      class 类名(基类名):
        语句块
      说明:
        单继承是指派生类由一个基类衍生出来的新类

    多继承 multiple inheritance
        多继承是指一个子类继承自两个或两个以上的基类
        语法:
          class 类名(基类名1,基类名2,...)
        说明:
          一个子类同时继承自多个父亲,父类的方法可以同时被继承下来
          如果两个父亲中有同名的方法,而在子类中又没有覆盖此方法时,调用
          结果难以确定
      多继承的问题(缺陷)
        标识符冲突问题
      (一般不推荐使用多继承)

      例子请留意下一篇文章https://www.cnblogs.com/xinin0909/p/9575405.html ,欢迎留言交流共同进步

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/xinin0909/p/9557666.html
Copyright © 2011-2022 走看看