OOP的三大特性

  面向对象编程: 一切皆对象

  • OOP: OOP是面向对象编程,三大特征 : 封装、继承、多态。
  • 抽象 : 将一个事物抽象定义成类,对这个事物详细的描述都定义为属性和方法, 事物的性质是属性, 事物的行为是方法,

  

一 . 封装: 

  • 将事物封装为类, 隐藏对象属性,方法实现的细节, 仅提供可供调用的接口 对对象的成员进行访问限制
  • python中对访问权限的限制为: "_"   和  "__"   
    • 单下划线开头的变量也有private的意味,但是更多的只是个约定,可以直接访问到.
    • 双下划线开头的类变量就用到了name mangling技术,会自动加上类名前缀.classname__属性名   的形式,只能在当前类或对象中访问,是私有的成员

 

二 . 继承:

  • 基于对象,基于类的封装, 继承的类拥有和父类相同的属性和方法
  • 作用:
    • 减少代码,增加代码的复用功能, 同时可以设置类与类直接的关系. 
    • 子类可以调用父类的方法,也可以重写父类方法: 
    • 可以使用 [父类名.父类方法] 的格式来调用父类方法,也可以使用super().父类方法的 格式来调用
      •   super不是关键字, 而是一个类
      •   super的作用是获取MRO(MethodResolustionOrder)列表中的第一个类
      •   super于父类之间没任何实质性关系,但通过super可以调用到父类
    • 菱形继承/钻石继承问题
      • 多个子类继承自同一个父类,这些子类由被同一个类继承,于是继承关系图形成一个菱形图谱

  多继承:  一个类可以继承自多个父类, 在被调用某个方法时, 首先在自己内部寻找, 如果没有, 再依次寻找父类中 的方法

  (魔法属性__mro__可以查看调用的次序: python3 中为就近原则,广度优先, 每个父类只会访问一次)

 

三 . 多态: 

  • 同一个事物在不同的情况下有不同的形态:
    • 小狗 属于动物 , 也属于狗类, 它继承子多个类, 具有多种形态
  • python为动态语言, 多态体现一般 

 

参考CSDN blog:对于OOP的详细说明

转载于:https://www.cnblogs.com/tinycodeworld/p/11485397.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值