吾爱乐享
个人学习网站

python学习之类与对象的继承,附案例

python学习之类与对象的继承

类的继承

继承的用法:

class 类名(父类):

没有继承前,我们如果想用另一个类里面的大多数功能或者全部功能,我们只能去手动复制另一个类中的需要用到的代码,然后粘贴到本类中,这就失去了代码的特性复用性,所以出现了继承的概念

继承就是:把父类的功能和属性继承下来,然后子类就拥有了和父类一样的功能,父类中的所有属性和方法都可以被子类调用,而且子类还可以拥有属于它自己的独特的方法

比如:手机类有打电话,发短信,看视频,听音乐等功能,但是这些功能还不满足需求,现在想要创建一个华为手机类,它既有打电话,发短信,看视频,听音乐等功能,还有5G的功能,此时就可以用继承

首先把手机类中的所有方法都继承下来,然后在创建自己独特的方法

案例:

手机类:

class Phone:

”’

这是一个手机类

主要功能有,打电话,发短信,看电视,听音乐

主要属性有,华为,3000,土豪金,android

”’

#通过初始化函数__init__把属性进行初始化

def __init__(self,brand_name,price,color,os):#可以给初始化参数进行默认值

self.brand_name =brand_name

self.price=price

self.color= color#把参数赋值给对象,只能用对象调用

Phone.os = os#把参数赋值给类,既可以用类调用也可以用对象调用

#功能,定义了几个方法

def call(self,name):

print(‘我的功能是打电话,我给{}打电话’.format(name))

@staticmethod

def massage(*arge):

print(‘我的功能是用来发短信的,我的短信内容是{}’.format(arge))

@classmethod

def watchTV(cls):#类方法,在类方法中调用对象方法,需要类名().方法名(),调用静态方法直接类名.方法名()

print(‘我的功能是看电视的’)

return  ‘我的功能是看电视的’

@classmethod

def music(self,music_name=’天堂’):

print(‘我的功能是用来听音乐的,我听的歌曲是{}’.format(music_name))

def calss_info(self):#对象方法

print(‘我的手机是{}手机,颜色是{},是{}系统,价格是{}元’.format(self.brand_name,self.color,self.os,self.price))

#调用类

#p=Phone(‘华为’,3500,’土豪金’,’android’)# 调用类需要在类的后面加一个括号

#p=Phone()

#p.call(‘张三’)

#p.calss_info()

if __name__ == ‘__main__’:

Phone.massage(‘今天周末明天又要上班’)

Phone.watchTV()

创建一个华为手机类

import calss_init

#创建华为类,让它继承手机类

class HuaWei(calss_init.Phone):

#华为手机支持5G

def G5(self):

w =self.watchTV()

print(‘我可以用5g了,{0},我可以用5g看电视’.format(w))

#因为父类中有初始化函数,所以继承后创建对象时就需要给初始化参数赋值

h=HuaWei(‘华为’,5000,’蓝色’,’android’)

#调用父类里面的call方法

h.call(‘张三’)

h.G5()

e91ee2b267d14ceb98bccf50137be82f.png

继承相关的拓展和重写

拓展:就是父类没有的方法,子类独有的方法

重写:就是父类已有的方法,在子类中重新定义新的功能,方法名相同,功能不同

#导入手机类

import calss_init

#创建华为类,让它继承手机类

class HuaWei(calss_init.Phone):

#华为手机支持5G

def G5(self):#这个方法就是拓展出来的方法,是父类中不存在的

w =self.watchTV()

print(‘我可以用5g了,{0},我可以用5g看电视’.format(w))

def music(self):#这个方法在父类中存在 这里重新写了不同的功能

print(‘我是一个新的方法,我可以下载歌曲’)

#因为父类中有初始化函数,所以继承后创建对象时就需要给初始化参数赋值

h=HuaWei(‘华为’,5000,’蓝色’,’android’)

#调用父类里面的call方法

h.call(‘张三’)

h.G5()

h.music()#此时的music的功能是子类的重新后的功能,和父类没关系

161fcec0c46a45eaa3a147622aa8d064.png

赞(0) 打赏
未经允许不得转载:吾爱乐享 » python学习之类与对象的继承,附案例

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏