多态
''' class Student: def __init__(self,age): self.__age = age @property def age1(self): return self.__age @age1.setter def age1(self,age): self.__age = age s = Student(10) s.age = 11 print(s.age) ''' ''' 继承: has a class Student: def __init__(self,name,book): pass is a 涉及到父类和子类 class Preson: def __init__(self,name,book) self.name = name self.age = age def run(self): print('正在跑步') class Student(Preson): def __init__ (self,score); self.score = score super(Student,self).__init 继承父类中的属性 def run(self): print('{}正在走'.format(self.name)) super().run() 调用父类中的方法 复习的时候: 1.__init__ 父类有子类没有 父类没有 子类有 父类子类都有 2.重写的方法,要父类的方法的情况 3.多继承 一个类可以继承多个父类(广度优先 python3) obj.__mro__ 多态 封装 继承------》面对对象编程 ''' ''' 多态 ''' class Preson: def __init__(self, name): self.name = name def feed_pet(self, pet): # 此时的pet可以接收一切对象,但是要经过判断 if isinstance(pet, Pet): print('{}喜欢养{}'.format(self.name, pet.nickname)) else: print('不是宠物') class Pet: role = 'Pet' def __init__(self, nickname, age): self.nickname = nickname self.age = age def show(self): print('{}的年龄是{}'.format(self.nickname, self.age)) class Cat(Pet): role = '猫' def catch_mouse(self): print('抓老鼠。。。') class Dog(Pet): role = '狗' def watch_house(self): print('看家......') class Tiger: def eat(self): print('老虎能吃人') # 创建对象 cat = Cat('luck', 18) dog = Dog('大黄', 4) preson = Preson('家伟') tiger = Tiger() preson.feed_pet(tiger) Python中多态是指一类事物有多种形态。比如动物有多种形态,人,狗,猫,等等。 Python的多态性是指:在不考虑实例类型的情况下使用实例,也就是说不同类型的实例有 相同的调用方法。比如人,猫,狗,等等只要是继承了animal就可以直接调用它的talk()方法。 peo=People() dog=Dog() pig=Pig() #peo、dog、pig都是动物,只要是动物肯定有talk方法 #于是我们可以不用考虑它们三者的具体是什么类型,而直接使用 peo.talk() dog.talk() pig.talk() #更进一步,我们可以定义一个统一的接口来使用 def func(obj): obj.talk() 好处: 1.增加了程序的灵活性 以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal) 2.增加了程序额可扩展性 通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用 回顾: 面对对象的特点: 封装,继承,多态 封装: 私有化属性,定义公有的set和get方法: class Student; def __init__(self,age): self.__age = age @property def xx(self): return self.__age @xx.setter def xx(self); self.__age = xx 这边注意,子类继承父类的时候,父类里面的私有属性(__init__)不会被继承 继承: has a is a 父类子类中的调用 多态: 同一个类但是有多种形态的表现
smartcat.994