Python:面向对象的三大特性

面向对象的三大特性

封装,继承,多态

继承:可以有效的节省代码

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()

猜你喜欢

转载自www.cnblogs.com/bailo/p/9193519.html