1) 私有属性和方法:
私有属性,只能在类的内部方法中访问。
如何私有化:在属性名或方法名的前面,添加‘_ _’符号
如果要访问私有的方法和属性:需要提供一个非私有(公共函数)的方法来访问或修改属性值。
2) 继承:
原则:子类从父类中继承所有属性和方法, 在访问父类的方法:
1、super().方法名( )
2、在父类的方法中,可以通过self来访问子类中的属性 【前提: 实例化子类对象】
2、在子类的构造函数中,调用父类的构造函数的情况:
2.1) 如果子类中没有__init__函数,在创建子类对象,会默认调用父类的__init__函数。
2.2) 如果子类中有__init__函数,在创建子类对象,只会调用子类中的__init__函数。
2.2.1) super(子类名, self).__init__(参数)调用父类的__init__函数,如果有多个父类,默认调用第一个父类的__init__函数
2.2.2)父类名.__init__(self, 参数)强制调用指定父类的__init__函数
为什么调用父类__init__函数?
只有一个目的: 初始化绑定 父类中的属性(父类中有多个属性),为了在子类中能够直接访问
3) 多态性
同属一类的多个子类中(继承),重写了父类的函数/方法(重写)在定义某一特定函数时,只声明父类的对象,在使用时可以传入子类的对象,在特定函数中,会自动调用子类中重写父类的函数。
Class Printer:
Def print_txt(Printer)
class DelPrinter(Printer):
def print_txt(self, txt): 重写父类的函数
class HPPrinter(Printer):
def print_txt(self, txt):重写父类的函数
def print_(prnter, txt) #特定功能的函数
Printer.print_txt(#) 会自动调用子类中的重写父类的print_txt()函数
说明:面向对象编程中,对象有三大特性:封装性,继承,多态性