1.继承和多态
#继承和多态
#在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承
#新的class称为子类(Subclass),而被继承的class称为基类、父类或超类
class Animal(object):
def run(self):
print('Animal is running')
#dog 继承Animal
class Dog(Animal):
pass
#cat 继承 Animal
class Cat(Animal):
pass
#Dog来说,Animal就是它的父类,对于Animal来说,Dog就是它的子类
dog = Dog()
dog.run()
print('--------------------------5')
class Dog(Animal):
def run(self):
print('Dog is running')
def eat(self):
print('eating meat')
class Cat(Animal):
def run(self):
print('Cat is running')
def eat(self):
print('eating fish')
dog = Dog()
dog.run()
dog.eat()
print('--------------------------6')
cat = Cat()
cat.run()
cat.eat()
#当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()
#这样,我们就获得了继承的另一个好处:多态。
a = list() # a是list类型
b = Animal() # b是Animal类型
c = Dog() # c是Dog类型
print('--------------------------7')
#判断一个变量是否是某个类型可以用isinstance()判断:
isinstance(a,list)
print(isinstance(a,list))
isinstance(b,Animal)
print(isinstance(b,Animal))
isinstance(c,Dog)
print(isinstance(c,Dog))
isinstance(c,Animal)
print(isinstance(c,Animal))
print('--------------------------8')
#继承和多态
#在OOP程序设计中,当我们定义一个class的时候,可以从