三种特性:
- 封装性:
- 私有属性和私有方法
- 把属性和方法隐藏起来,属性没有特殊要求都用私有属性
- 意义:
- 以面向对象的编程思想进行项目开发
- 封装数据属性:明确的区分内外,控制外部对隐藏的属性的操作行为(保护数据、过滤掉异常数据)
- 继承性:
- 单继承和多继承
- 多态性
属性和方法的封装
3、多态
什么是多态(定义)
定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果
①多态依赖继承
②子类方法必须要重写父类方法
好处:调用灵活,有了多态,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化!
示例代码:
python">'''
首先定义一个父类,其可能拥有多个子类对象。当我们调用一个公共方法(接口)时,传递的对象不同,则返回的结果不同。
'''
class Fruit(object):def makejuice(self):print('i can make juice')class Apple(Fruit):# 重写父类方法def makejuice(self):print('i can make apple juice')class Banana(Fruit):# 重写父类方法def makejuice(self):print('i can make banana juice')class Orange(Fruit):# 重写父类方法def makejuice(self):print('i can make orange juice')# 定义一个公共接口(专门用于实现榨汁操作)
def service(obj):# obj要求是一个实例化对象,可以传入苹果对象/香蕉对象obj.makejuice()# 调用公共方法
service(Orange())
[!NOTE] python中多台的具体案例
+ 多态体现+加号只有一个,但是不同的对象调用+方法,其返回结果不同。
如果加号的两边都是数值类型的数据,则加号代表运算符
如果加号的两边传入的是字符串类型的数据,则加号代表合并操作,返回合并后的字符串
‘a’ + ‘b’ = ‘ab’
如果加号的两边出入序列类型的数据,则加号代表合并操作,返回合并后的序列
[1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6]