08-Python之路-进阶-面向对象-三种特征
作者:
程序记录日志 | 来源:发表于
2022-04-27 19:00 被阅读0次
基本特征
- 封装:根据职责将属性和方法封装到一个抽象类中
- 继承:实现代码的重用,相同代码不需要重复编写
- 多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度
封装
- 封装是面向对象编程的一大特点,面向对象编程的第一步就是要将属性和方法封装到一个抽象的类中,在外界使用类的创建对象,然后让对象调用方法,对象方法的细节都被封装在类的内部
- 一个对象的属性可以是另一个类创建的对象
继承
单继承
语法
class 类名(父类名):
pass
- 子类继承父类,可以直接享受父类中已经封装好的方法,不需要再次编写。子类中应该根据职责,封装子类特有的属性和方法
传递性
重写
- 当父类的方法实现不能满足子类需求时,可以对方法进行重写
重写父类方法两种情况
- 覆盖父类的方法:如果在开发中,父类的方法实现和子类方法实现完全不同,就可以使用覆盖的方式,在子类中重新编写父类的方法实现。具体的实现方法,就相当于在子类中定义了一个和父类同名的方法并且实现,重写之后在运行时,只会调用子类中重写的方法,而不会调用父类封装的方法
- 对父类方法进行扩展:子类的方法实现中包含父类的方法实现,父类原本封装的方法实现是子类方法的一部分就可以实现扩展的方式。在子类中重写父类的方法在需要的位置使用
super().父类方法
来调用父类方法的执行代码,其他的位置针对子类的需求,编写子类特有的代码实现
私有方法和私有属性
- 私有属性、方法是对象的隐私,不对外公开,外界以及子类都不能直接访问。私有属性、方法通常用于做一些内部的事情
- 子类对象不能在自己的方法内部,直接访问父类的私有属性或私有方法。子类对象可以通过父类的公有方法间接访问到私有属性或私有方法
多继承
- 子类可以拥有多个父类,并且具有所有父类的属性和方法
- 如果父类之间存在同名的属性或方法,应避免使用多继承
语法
class 子类名(父类名1,父类名2...)
pass
继承类
- 新式类:以object为基类的类
- 旧式类:不以object为基类的类
- 今后在定义类时,如果没有父类,统一继承自object类
多态
- 多态不同的子类对象调用相同的父类方法,产生不同的执行结果。多态可以增加代码的灵活度,以继承和重写父类方法为前提,是调用方法的技巧,不会影响到类的内部设计
- 多态更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化
本文标题:08-Python之路-进阶-面向对象-三种特征
本文链接:https://www.haomeiwen.com/subject/fpulyrtx.html
网友评论