继承与类的内容回顾

昨日内容回顾
  定义类 class Dog :
  静态属性:表面拥有的特点 4
  动态属性:bite eat run 拥有self 参数
  实例属性: 实例方法中定义的属性
  实例化: 类名()---->对象 ,过程
  实例:类名() 对象/实例
  self: 调用方法或者属性本身 的那个对象
  __init__ 构造方法 : 创建对象的时候自动去调用的方法
类名:
  查看静态属性,改变静态属性(常用)
  查看动态属性,得到的是内存地址
  调用动态属性,传self 参数,但是一般不用
对象:
  查看静态属性(但是不常用)
  查看动态属性,得到的是内存地址
  调用动态属性,不需要传self 参数
类中的命名空间
  类命名空间
  实例命名空间
实例化发生了什么?
   开辟了一个新的实例命名空间
   把实例的内存地址传给了self
   self空间中可以定义实例属性
   把属性返回给实例,然后就能用这些属性了
组合: peo.wap=打狗棒
  一个类对象作为另一个类对象的属性
 
# 继承
   单继承 继承一个父类
   多继承 继承两个以上父类
   继承顺序 按继承父类的先后顺序,各父类用 , (逗号)隔开
   子类重写父类的__init__方法
       父类.__init__(self,父类中的属性)
       super().__init__(父类中的属性)
父类中方法直接可以在子类中重写
    调用是先在子类自己所在的类中找,没有再去父类中找
    想要调用父类中方法用super super().eat()
所有的类都继承自object类
【super作用】
   如果子类(Apple)继承父类(Fruit)不做初始化,那么会自动继承父类(Person)属性name。
    如果子类((Apple)继承父类(Fruit)做了初始化,且不调用super初始化父类构造函数,那么子类(Apple)不会自动继承父类的属性(name)。
    如果子类(Apple)继承父类(Fruit)做了初始化,且调用了super初始化了父类的构造函数,那么子类(Apple))也会继承父类的(name)属性。
 
 
MRO顺序

猜你喜欢

转载自www.cnblogs.com/computer123/p/11986909.html