一、面向对象的三大特性: 1.继承 概念:a类继承b类,类a将自动获得类b的所有属性和方法,类b叫做类a的父类,类a叫做类b的子类。 优势:可以极大提高代码的重用性,我们不用重复敲相同的方法和属性,直接通过继承让子类马上获得 所有父类中定义的方法和属性。 使用注意事项: 1)必须注意初始化方法__init__的行为,如果子类没有定义自己的初始化方法,则父类u的初始化方法将被自动调用;但是如果要实例化子类的对象,必须要传入父类的初始化方法对应的参数,否则会报错。 2)如果自立定义了自己的初始化方法,而在子类没有显示调用父类的初始化方法,则父类的所有属性都不会被初始化。一般情况下如果我们需要在子类中去定义子类的实例属性的话,则需要在子类中定义初始化方法,否则一般不需要在子类中自己定义初始化方法。 3)如果子类定义了自己的初始化方法,在子类中显示调用父类的初始化方法则子类和父类的属性都会被初始化。 重写父类方法:如果在子类中定义了跟父类同名的方法,则子类的方法将覆盖父类的这个方法,实现子类方法的自定义。 2.封装 概念:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,只能通过该类所提供的方法来实现定义类内部信息的操作和访问 目的: 1)隐藏类的实现细节 2)让使用者只能通过事先约定的数据访问方法来访问信息,我们可以在这些访问方法里卖弄加上控制李培基,限制对属性的不合理访问 3)可进行数据检查,从而有利于保护对象信息的完整性 4)便于修改,提高代码的可维护性 含义:隐藏该隐藏的部分,暴露该暴露的部分 考虑: 1)将对象的属性和实现细节隐藏起来,不允许外部直接俄访问 2)把方法接口暴露出来,让方法来控制对这些属性的安全访问和操作。 在pyhon代码中实现属性或方法的隐藏:在定义方法或属性时,使用双下划线开头 3.多态 如果一个类的子类重写了父类中的某一个方法,那么在其他函数去调用这个类的方法时,将根据传入的子类不同而呈现不同的行为。 父类对象不是一个子类对象,子类是一个父类对象。
04-10
3069
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交