Discuss / Python / 继承和多态 笔记

继承和多态 笔记

Topic source

按照教程,把课程代码大致改了改:

class Animal(object):   #编写Animal类
    def run(self):
        print("Animal is running...")

class Dog(Animal):  #Dog类继承Amimal类,没有run方法
    pass

class Cat(Animal):  #Cat类继承Animal类,有自己的run方法
    def run(self):
        print('Cat is running...')
    pass

class Car(object):  #Car类不继承,有自己的run方法
    def run(self):
        print('Car is running...')

class Stone(object):  #Stone类不继承,也没有run方法
    pass

def run_twice(animal):
    animal.run()
    animal.run()

run_twice(Animal())
run_twice(Dog())
run_twice(Cat())
run_twice(Car())
run_twice(Stone())

输出结果如下:

Animal is running...
Animal is running...
Animal is running...
Animal is running...
Cat is running...
Cat is running...
Car is running...
Car is running...

AttributeError: 'Stone' object has no attribute 'run'

除石头吃了不会跑的亏外,其余的都能run,都是“鸭子”。

hhhhhhhhhhhhhhhh

有画面感了

car像鸭子,stone不是鸭子,其余全是鸭子 哈哈

讲解的很好

牛皮,一目了然

天命莫问

#7 Created at ... [Delete] [Delete and Lock User]

插眼,赞一个

hcie_zpc

#8 Created at ... [Delete] [Delete and Lock User]

后排插眼

轻涉世

#9 Created at ... [Delete] [Delete and Lock User]

这个举例太棒了

此岸彼岸v

#10 Created at ... [Delete] [Delete and Lock User]

学废了,学废了,给力嗷!


Reply