语法
- 实例变量:不同个体的不同数据 [自己]
- 实例方法:操作实例变量
- 类变量:不同个体的相同数据 [大家]
- 实例方法:操作类变量
思想
- 封装[分]:根据需求划分为多个类 [每个变化点单独定义到类中]
- 继承[隔]:统一多个子类型的行为,隔离客户端代码与变化点.
- 多态[做]:子类通过重写实现具体功能
目标
例:老张开车去东北
思想图

代码
"""
面向对象来实现
1。老张开车去东北
2。用面向对象思想。在不改变客户端代码情况下,需求改成老张开飞机去东北
"""
class Person:
def __init__(self, name=""):
self.name = name
def go_to(self, vehicle, position):
print(self.name,"开",end="")
vehicle.run()
print(position)
class Transportation:
def run(self):
pass
class Car(Transportation):
def run(self):
print("车去",end="")
lz = Person("老张")
lz.go_to(Car(), "东北")
class Aircraft(Transportation):
def run(self):
print("飞机去",end="")
lz.go_to(Aircraft(), "东北")
总结
- 封装
(1) 定义:
将一些基本数据类型复合成一个自定义类型。
(2) 优势:
将数据与对数据的操作相关联。
代码可读性更高(类是对象的模板)。
(1) 定义: 向类外提供必要的功能,隐藏实现的细节。
(2) 优势: 简化编程,使用者不必了解具体的实现细节,只需要调用对外提供的功能。
- 继承
(1) 概念: 重用现有类的功能,并在此基础上进行扩展。
(2) 说明:子类直接具有父类的成员(共性),还可以扩展新功能。
- 多态
类似魔法函数
如增加新需求,在不改变客户端代码情况下,我们在自定义类中重写,从而改变起行为