python 笔记 之 类的继承与重写

'''
6.继承  super
重写
调用:先找子类中的方法,如果子类中找不到就到父类中找
多继承:如果父类中都有该方法,那么先继承谁,就用谁的方法
'''
class Animal(object):  #object所有的类都继承
    def __init__(self,name,sex):
        print("你正在初始化一个Animal {0} {1}".format(name,sex))
    def run(self):
        print("Animal can run.")

class Bird(Animal):  #继承了Animal
    def __init__(self):
        print("我是一只鸟")
    def fly(self):
        print("Bird can fly.")

class Cat(Animal):
    # 2
    # 当没有这个函数时,初始化Cat将会调用Animal的__init__
    # def __init__(self):   # 父类有的最好重写,确保万无一失
    #     print("我是一只猫,  lalaal")
    
    # 4
    def __init__(self,name,sex):   # 我想调用父类的__init__  并传参
        self.name = name
        self.sex = sex
        super(Cat, self).__init__(self.name,self.sex)
        print("我是一只猫,  lalaal")

    def jiao(self):
        print("miao miao miao miao")
    def run(self):   # 重写父类的函数
        print("我是一只猫,会爬树")
# 3
class BianYi(Cat,Bird):  #一般不用
    pass

# 1
# bird = Bird()
# bird.run()
# bird.fly()
# 2
# animal = Animal()
# animal.run()
# cat = Cat()
# cat.run()
# 3
# bianYi = BianYi()
# bianYi.run()
# bianYi.fly()
# 4
cat = Cat("猫","man")

猜你喜欢

转载自my.oschina.net/u/3824134/blog/1799026