面向对象 的自我理解 :
# 封装 : 将一类事物 抽象出来 成为一个类【class】 在加上 事物的 【函数】属性 和 行为 。 【流程: 抽象 --- 定义类 --- 加上(属性 和 行为)】
# 继承 : 当需要创建多个类的时候, 而这些类里的属性和方法又差不多相同,则可以继承,减轻我们的工作量(十分方便)。【不建议使用多继承】
# 多态 : 我们可以引用对象的方法时,可以传入另外的对象,则可以在主对象中调用 另外一个对象的属性和方法
# 这便是多态 :我们也不用在意那个对象是哪种,只要他具有那种属性即可
# 尤其是用了继承,创建了多种对象的那种 ,我们只需要那种对象有一个共同的属 性 或者方法, 我们只需要传入对象调用即可!!
下面用代码举例(方便大家的理解):
class Dog(object): # 创建了 狗类 【是 哈士奇类 的父类】
def __init__(self,name):
self.name = name
print("你好,%s" % self.name)
def run(self):
print("%s 蹦蹦跳跳过来了"%self.name)
class Ha(Dog): # 创建了 哈士奇 类 【继承了狗类】 (即: 狗类 是 哈士奇类 的父类) 【这里使用了继承!!!】
def run(self):
print("%s 开始咬人了!"%self.name)
class People(object):
def __init__(self,name):
self.name = name
print("你好,%s" % self.name)
def good(self,gou):
print("%s 和 %s 一起玩"%(self.name, gou.name)) # gou.name 是对象自带的,可以直接用!
gou.run()
bai = Dog("小黑") # 创建了一个狗对象 【叫小黑】
ming = People("小明") # 创建了一个人对象 【叫小明】
ming.good(bai) # 用小明这个对象里的 一个def 函数将bai(狗子)对象这个实参 传入进def good中(用的是dog这一形参去接受的!)
# 即可,在人的对象中,传入其他对象,对其他对象的函数(功能和属性)进行调用!
#同理:我还可以传入狗的子类!!!【即为:哈士奇类】
bai = Ha("小白") # 创建了一个狗的子类 :哈士奇 【叫小白】
ming = People("小红") # 创建了一个人对象 【叫小红】
ming.good(bai) # 用小明这个对象里的 一个def 函数将bai(狗子)对象这个实参 传入进def good中(用的是dog这一形参去接受的!)
# 学习地址: https://www.bilibili.com/video/BV1ex411x7Em?p=405