【老九】【Python】面向对象的继承与多态

OOP(Object Oriented Programming)

         万物皆对象

         是一种对现实世界理解和抽象的方法

         封装、继承、多态

 

对象:对象是存在的具体实例,具有明确的而状态(属性)和行为(方法)

 

继承:

        

注意:

  1. super().__init__()调用父类的初始化方法
  2. 构造方法不可继承
  3. 父类私有属性在子类中不能直接访问
  4. 继承关系是一种is-a的关系,比如战士是英雄。
  5. 支持多继承。(建议慎用)

 

覆盖方法:子类修改定义在父类中的实现方法,子类中的方法必须使用与父类方法相同的方法头。

         注意:

  1. 方法覆盖发生在通过继承而相关的不同类中
  2. 方法覆盖必须具有同样的方法签名
  3. __开头定义的私有方法不能被覆盖:如果子类中的方法在父类中是私有的,那么这两个方法是不相干的,即使这两个方法由相同的方法名。

 

object类:

1、Python中的所有类都继承自object类

2、如果定义类时没有显示地指明父类,父类默认为object

3、object中定义的所有方法都有两条前导下划线和后置下划线。

1、一个类在初始化时首先会调用__new__()方法。(不是__init__()方法)

2、__new__()必须有返回值,这个返回值就是实例化出来的当前类的对象

3、如果__new__()方法最后没有正确的返回当前类的对象,那么后面的init()方法不会调

 

单例模式:单例模式也叫做单子模式,单例对象的类必须保证只有一个实例存在。通过覆盖__new__()函数来实现单例。

cls:类

*args:命名关键字参数(结果会存在元组中)

**kwargs:关键字参数(结果会存在字典中)

setatter(cls,attr,value):给cls类设置attr属性,attr属性值为value(如果没有这个属性的话,相当于给这个类新增了一个属性)

遍历字典的方法为:for key,value in dirs.items():

多态和动态绑定

         多态:同一个实体,同时具有多种形式(父类和其子类)

         动态绑定:一个方法可以被沿着继承链的几个类执行,运行时有python决定调用哪个

方法

core.core_move()方法根据我们实际传入的参数来进行对应方法的调用,传英雄时调用英雄的移动方法,传战士时调用战士的移动方法,这就是动态绑定。

 

程序的MVC模式

         Model:           数据模型

         View:              视图层(显示逻辑)

         Controller:     控制层(业务逻辑)

遇到问题,可加老九君个人QQ:614940318,请备注来自CSDN
老九学堂免费C、C++、Java课程地址: https://study.163.com/courses-search?keyword=老九学堂

徐老师线下全栈就业班开始报名啦~

零基础开讲,8个月,Java全栈学习,终身推荐就业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值