类与对象
"""

如果说对象是用来存放数据与功能的容器,那么类则是用来存放多个对象相同的数据与功能的容器。
"""
继承
"""
继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类

继承允许我们定义继承另一个类的所有方法和属性的类。

父类是继承的类,也称为基类。

子类是从另一个类继承的类,也称为派生类。

1.子类会先于父类被检查
2.多个父类会根据它们在列表中的顺序被检查
3.如果对下一个类存在两个合法的选择,选择第一个父类
"""
封装
"""
封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。
"""
多态
"""
多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪

多态性指的是可以在不用考虑对象具体类型的情况下而直接使用对象
多态性的好处在于增强了程序的灵活性和可扩展性
多态性的本质在于不同的类中定义有相同的方法名,这样我们就可以不考虑类而统一用一种方式去使用对象,可以通过在父类引入抽象类的概念来硬性限制子类必须有某些方法名
"""
绑定方法
"""
类中定义的函数分为两大类:绑定方法和非绑定方法
在类中正常定义的函数默认是绑定到对象的,而为某个函数加上装饰器@classmethod后,该函数就绑定到了类。

为类中某个函数加上装饰器@staticmethod后,该函数就变成了非绑定方法,也称为静态方法。该方法不与类或对象绑定,类与对象都可以来调用它,但它就是一个普通函数而已,因而没有自动传值那么一说
总结绑定方法与非绑定方法的使用:若类中需要一个功能,该功能的实现代码中需要引用对象则将其定义成对象方法、需要引用类则将其定义成类方法、无需引用类或对象则将其定义成静态方法。
"""

方法重写
 如果父类封装的方法不能满足子类的需求, 我们就需要使用到方法重写, 在子类中重新编写一下父类的方法实现就好了, 这个就是重写的概念。具体的表现就是在子类中定义一个跟父类同名的方法, 并且自己实现一下就好了。
。。。

派生
"""
子类可以派生出自己新的属性,在进行属性查找时,子类中的属性名会优先于父类被查找
"""