面向对象的三大特性
封装,继承,多态
继承:可以有效的节省代码
python中类分为两种:
新式类,经典类。
python3x 中所有的类都默认继承object类,继承object类的类称为新式类。
Python2 中默认是经典类,如果改成新式类,就让类(object) 继承object类
新式类 :遵循的广度优先。
经典类 :遵循的深度优先。
继承的问题:
class Animal: soup = '灵魂' def __init__(self,varieties, sex, color): self.varieties = varieties self.sex = sex self.color = color def eat(self): print('吃') class Cat(Animal): a = Animal.eat def eat(self): print('猫吃饭') class Bird(Animal): def __init__(self,varieties, sex, color,fly): # Animal.__init__(self,varieties, sex, color,) # 执行父类的方法第一种方式 # super(Animal,self).__init__(varieties, sex, color,) # 执行父类的方法第二种方式 super().__init__(varieties, sex, color,) # 执行父类的方法第二种方式 省略写法 self.fly = fly # 个性化的封装 def eat(self): super().eat() print('鸟该吃饭了....') cat1 = Cat('波斯猫', '公', '橘黄') cat1.eat() # 问题一: # 执行顺序,所以执行 猫吃饭. # 问题二: # 猫,鸟,都有自己独立属性,如何使用共同的属性并且使用独立的属性。 b1 = Bird('鹦鹉','公', '绿色',800) # print(b1.__dict__) b1.eat()