面向对象的三大特征——学习笔记

面向对象的三大特征

  • 封装

  • 继承

  • 多态

封装特征

​ 实际工作中很多的成员不方便为对象之外的访问或者操作的,所以需要限定以下是否可以操作成员

封装特性就是对于成员操作进行限制的保护性措施!

###面向对象的封装分为三个级别:

  • 私有化封装
  • 受保护的封装(暂时不讲,在继承章节讲)
  • 公共的封装

对象/类成员的访问:

  1. 当前类/对象内部访问 (在类的结构内部)
  2. 类和对象的外部访问 (在类的结构外部)
  3. 类和对象的子类/子对象的访问 (在类的结构外部,在子类/对象的内部)

私有化封装:

  • 方法:在成员属性或方法之前,添加双下划线,就可以私有化成员。
  • 特征:私有化的成员属性和方法,无法在类/对象的外部访问;私有化成员仅允许在类/对象的内部访问

公共的封装:

  • 方法:任何成员在没有进行私有化操作的时候默认都是公共的封装。
  • 特征:公共的封装成员属性和方法,在任何位置都可以被访问。

Python封装的迷幻~:(了解,但是不允许使用)

​ 其实python没有实现和其他语言一样的面向对象封装策略(还不是很完备)

​ 私有化封装采用了name mangling(改名)的策略实现私有化操作。并不是真正的私有化。

​ 改名策略:将原有成员属性或者方法名修改为 _类名__成员名

继承特征

​ 什么是继承?继承父母的愿望,继承父母的财产……继承火的遗志……

###计算机中的继承:

​ 面向对象中的继承就表示一个类获取另外一个类的成员的操作。(并非所有成员)

继承相关的概念:

  • 被其他类继承的类,这个类叫做父类,也叫做基类或者叫做超类。
  • 继承其他类的类,这个类叫做子类,也叫做派生类。

继承的意义:

​ 提高代码的重用率,建立新的类与类的关系,方便其他逻辑操作。

继承的格式:

class 父类:
    pass

class 子类(父类):
    pass

继承的特征:

  1. 在不指定父类的情况下,所有的类均继承自object类(系统提供的!)

  2. 子类继承父类就具有父类的所有成员。(私有化成员不可访问)

  3. 子类继承父类,不会将父类成员复制到子类中,子类如果需要成员可以找父类索取。

  4. 私有化的成员,允许在子类中单独建立一份,不会找父类索取私有成员。

  5. 子类可以根据需求添加自己独有的成员来进行操作。

  6. 子类重载父类的成员。仅仅是对子类/对象有效并不会影响父类。

  7. 子类在重载父类的方法的时候,可以调用父类的方法来进行操作:

    • super().父类方法名() ->> 必须是带有self的对象方法才可以使用
    • 父类名.父类方法名() ->>任何方式都允许

单继承与多继承:

  • 单继承:一个类只能继承一个父类的方式。

    (生物角度):

    人类
    哺乳类动物
    动物
    生物
    有机物
    ...
  • 多继承:一个类可以继承多个父类的方式。

    (社会角度):

    舞蹈老师
    体育老师
    爸爸
    妈妈

单继承案例:

class 父类:
    pass

class 子类(父类):
    pass

补充内容:受保护的封装

  • 私有化封装 private
  • 受保护的封装 protected
  • 公共的封装 public

类/对象内类/对象外子类/子对象中
私有化的封装××
受保护的封装√(不允许)
公共的封装

注意:python目前不支持设定受保护的成员,但是开发者有约定的使用方式。受保护的封装:在成员名称前面加一个下划线。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值