python继承与多态
2019-01-09 本文已影响0人
Oneshot_fea8
class Animal(object):
def run(self):
print('Animal is running...')
class Dog(Animal):
def run(self):
print('Dog is running...')
class Cat(Animal):
def run(self):
print('Cat is running...')
def run_twice(animal):
animal.run()
animal.run()
a = Animal()
d = Dog()
c = Cat()
#判断一个变量是否是某个类型可以用isinstance()判断
print('a is Animal?', isinstance(a, Animal))
print('a is Dog?', isinstance(a, Dog))
print('a is Cat?', isinstance(a, Cat))
print('d is Animal?', isinstance(d, Animal))
print('d is Dog?', isinstance(d, Dog))
print('d is Cat?', isinstance(d, Cat))
#多态真正的威力:作用在哪个对象上由运行该对象的确切类型决定
run_twice(c)
#运行结果:
a is Animal? True
a is Dog? False
a is Cat? False
d is Animal? True
d is Dog? True
d is Cat? False
Cat is running...
Cat is running...