继承与多态

面向对象的三个基本特征是:封装继承多态

Import says
sys.getrefcount(t)
可以得到一个对象有多少次引用


继承:子类继承父类,子类可以使用父类的属性和方法,简化代码;当生成子类对象时,先初始化父类对象,所以如果父类有_ _init_ _()方法时,并且有属性,要通过子类的构造赋值;

一个类可以有多个子类,在子类中调用父类的属性时,在_ _init_ _方法中使用父类.属性,或者self.属性
调用父类方法时,super().父类方法()

总结:当子类继承父类时,子类的构造方法应该包含父类与子类共同的属性,在子类的初始化方法中,将父类的属性传递给父类,子类的属性赋值给子类

方法重写:
子类继承父类时,子类的方法()和父类一样,此时子类重写了父类的方法,当生成子类对象时,调用的是子类的重写方法

三代继承:子类初始化方法需要祖父类、父类及自己的属性,可以调用父类的初始化方法传参,可以重写父类的方法,构造的顺序:先构造祖父类,再构造父类,最后是自己


类名. mro() , 搜查所有的父类,即搜索顺序
当对象没在使用,或程序结束的时候,就启用_ _del_ _方法;在子类中,调用父类的方法,在_ _init_ _中使用父类.属性;或self.属性 或父类 . _ _init_ _(self,参数)  ;或super(self,参数) . _ _init_ _

有方法重写,才会有多态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值