面对对象的三大特点之继承

继承简介
继承是面对对象的三大特点之一
通过继承我们可以使一个类获取他继承的类中的属性(变量)和方法(函数)
在定义类时,可以在类名后面的括号中指定当前类的父类(超类,基类)
继承提高了类的复用性。让类与类之间产生了关系。又累这个关系,才有了多态的特性。
方法重写
如果在子类中有和父类同名的方法,如果我们调用子类是调用同名的方法,那
那解释器首先回去子类中去方法只有子类中没有了,解释器才会去父类中去查找,
,这样我们就可以更好的修改一个我们不能修改的类,创建一个新类,继承旧类
修改要改进的方法,然后调用原先的方法这样就可以不动原先的代码
调用一个方法时:
会优先去当前对象中寻找是否具有该方法,如果有则直接调有用
如果没有,则去当前对象的父类中寻找,如果父类中有则直接调用父类中的方法
如果没有,则去父类中寻找,依次类推,直到找到object(所有类的父类)如果依然没找到就会报错。
super
super()可以获取当前的父类

并且通过super()返回对象调用父类的方法时不要调用self
多重继承

在Python中是⽀持多重继承的。也就是我们可以为⼀个类同时制定多个⽗类
可以在类名的()后边添加多个类,来实现多重继承
多重继承,会使⼦类同时拥有多个⽗类,并且会获取到所有⽗类中的⽅法
在开发中没有特殊情况,应该尽量避免使⽤多重继承。因为多重继承会让我
们的代码更加复杂
如果多个⽗类中有同名的⽅法,则会先在第⼀个⽗类中寻找,然后找第⼆
个,找第三个…前⾯会覆盖后⾯的

面对对象的三大特点之多态

多态时面对对象的三大特性之一。从字面上理解多种形态
一个对象可以以不同的性态去展现。
⾯向对象三⼤特性
封装 确保对象中数据的安全
基础 保证了对象的扩展性
多态 保证了程序的灵活性

属性和方法

属性
	类属性,直接在类中定义的属性是类属性
	类属性可以通过类或类的实例访问到。但是类属性只能通过类对象来修
	改,⽆法通过实例对象修改
	实例属性 通过实例对象添加的属性属于实例属性
	实例属性只能通过实例对象来访问和修改,类对象⽆法访问修改
⽅法
	在类中定义,以self为第⼀个参数的⽅法都是实例⽅法
	实例⽅法在调⽤时,Python会将调⽤对象以self传⼊
	实例⽅法可以通过类实例和类去调⽤
	当通过实例调⽤时,会⾃动将当前调⽤对象作为self传⼊
	当通过类调⽤时,不会⾃动传递self,我们必须⼿动传递self
	类⽅法 在类的内容以@classmethod 来修饰的⽅法属性类⽅法
	类⽅法第⼀个参数是cls 也会⾃动被传递。cls就是当前的类对象
	类⽅法和实例⽅法的区别,实例⽅法的第⼀个参数是self,类⽅法的第⼀
	个参数是cls
	类⽅法可以通过类去调⽤,也可以通过实例调⽤
静态⽅法
	在类中⽤@staticmethod来修饰的⽅法属于静态⽅法