day20
一、继承 类的继承 面向对象三要素之一,继承Inheritance class Cat(Animal)这种形式就是从父类继承,继承可以让子类从父类获取特征(属性和方法) 在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码,多复用,子类可以定义自己的属性和方法 1、查看继承的特殊属性和方法 base : 类的基类 based : 类的基类元组 mro : 显示方法查找顺序,基类的元组 __mro()__方法 : 显示方法查找顺序,基类的元组 subclasses () : 类的子类列表 2、继承中的查找顺序 从父类继承,自己没有的就可以到父类中找 私有的都是不可以访问的,但是本质上依然是改了名称放在这个属性所在类的_ dict -中 继承时,公有的,子类和实例都可以随意访问,私有成员被隐藏了,子类和实例不可直接访问 当私有变量所在的类内的方法中可以访问这个私有变量 属性查找属性:实例的dict--》类的dict--》父类dict 多继承 OCP原则:多继承,少修改;继承的用途:增强基类,实现多 1、多态 在面向对象中,父类,子类通过继承联系在一起,如果可以通过一套方法,就可以实现不同的表现,就是多态 一个类继承自多个类就是多继承,它将具有多个类的特征 2、多继承弊端 多继承很好的模拟了世界,因为事物很少是单一继承,但是舍弃简单,必然引入复杂性带来冲突