封装:
#封装
#把数据(属性)、实现(方法、函数)放在类内部完成,对外显示一个接口(能被调用的函数)。
#也就是说,封装好的类,是一个黑盒子。
#想要做什么,直接告诉 “类” 一声,就好了,类就自动完成好了
#与函数对比,类是更高层次的封装(更高级的函数)
#当然,类实现了更高层次的封装,不仅仅封装了操作,还封装了数据。
#比如,构造一个函数show(),就能够实现打印所有变量的值。而不关心变量名字等具体信息
#使用,set、get能够在设置前,对数值逻辑进行判断
构造一个类,在类中构造一个方法,能够显示该类对应的属性。
直接调用:
class person():
def __init__(self,name,age,grade):
print("=====开始======")
self.name=name
self.age=age
self.grade=grade
张三=person('张三',23,98)
print(张三.name)
print(张三.age)
print(张三.grade)#每次打太麻烦
封装:
class person():
def __init__(self,name,age,grade):
print("=====开始======")
self.name=name
self.age=age
self.grade=grade
def show(self):
print(self.name)
print(self.age)
print(self.grade)
print("=====结束======")
张三=person('张三',23,98)
张三.show()#可直接输出
李四=person(李四,24,88)
李四.show()
王五=person(王五,25,66)
王五.show()
继承:
子类继承了父类(基类)的方法
两个理解:
(自上向下)
⚫ 提取共性,以开发游戏为例:
⚫ 比如,游戏里面有很多种类不同的怪兽,不
同的怪兽之间存在很多相同的属性、动作(方法)
⚫ 我们构造一个基类“怪兽”
⚫ 把不同种类怪兽中,相同的属性、方法,放
在基类“怪兽”里面就可以了。
(自上而下)
⚫ 更好地实现扩展:游戏充值类。
⚫ 如果,适逢双11,我们可以在充值类中,增
加一个双11活动。
⚫ 碰到游戏纪念日,增加一个折扣。
⚫ 碰到在线人数达到10万,增加一个活动折扣。
⚫ 如此,增加下去,充值类,越来越大
⚫ 每次修改起来很麻烦,
⚫ 继承,每次活动,都从基类中继承一下。
class guaishou:
def shout(self):
print("AAAAAAAA")
class fei(guaishou):
def fly(self):#()中填写的就是父类,定义的jisuanji这个类会继承(包含)students的函数
print("我能飞。。。。")
class shui(guaishou):
def swim(self):
print("我在水里游。。。")
class lu(guaishou):
def run(self):
print("奔跑吧,兄弟。。。")
xiaobai=guaishou()
xiaobai.shout()
feishou=fei()
feishou.shout()#可以直接调用父类的函数(方法)
feishou.fly()
shuishou=shui()
shuishou.shout()
shuishou.swim()
lushou=lu()
lushou.shout()
lushou.run()
输出结果:
AAAAAAAA
AAAAAAAA
我能飞。。。。
AAAAAAAA
我在水里游。。。
AAAAAAAA
奔跑吧,兄弟。。。
练习:
class student():
def learn(self):
print("认真上课")
class jisuanji(student):#()中填写的就是父类,定义的jisuanji这个类会继承(包含)students的函数
def biancheng(self):
print("好好写代码")
class jinrong(student):
def jinrongjiaoyi(self):
print("做好买卖")
小明=student()
小明.learn()
小美=jisuanji()
小美.learn()#可以直接调用父类的函数(方法)
小美.biancheng()
小爱=jinrong()
小爱.learn()
小爱.jinrongjiaoyi()
输出结果:
认真上课
认真上课
好好写代码
认真上课
做好买卖
多态:
对同一种现象做出的反应
子类执多态的方法
#子类继承了基类的方法(也就是输出),无需任何操作得到了基类的方法(输出)
#子类执行多态方法
#构造一个调用基类方法A,增加新子类,同样能使用该方法A
练习:
• 构造一个基类“学生” ,包含“学习”方法。
• 构造继承类“计算机专业学生”,重新实现方法“学习”。
• 构造继承类“金融专业学生”,重新实现方法“学习”。
• 构造一个函数fun,能够调用基类“学生”的方法。
• 构造不同类的对象,将其作为函数fun的参数
class student():
def learn(self):
print("好好上课")
class jisuanji(student):
def learn(self):
print("好好写代码")
class jinrong(student):
def learn(self):
print("好好买卖交易")
def fun(student):#()里是类名
print("====!!!=====")
student.learn()
print("====####=====")
小明=student()
小明.learn()
xiaoming=jisuanji()
xiaoming.learn()
fun(xiaoming)
xiaomei=jinrong()
fun(xiaomei)
xiaomei.learn()
class meishu(student):
def learn(self):
print("画画")
xiaowang=meishu()
xiaowang.learn()
fun(xiaowang)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61416.html