Python自学之路第十四步——与周杰伦有关的岁月

这次聊聊python中的继承。

如果我们已经写了一个大类,比如明星类,需要再建一个演艺明星类,则可以使用继承,省去许多麻烦。我们创建的子类可以使用父类的属性和方法,也可以添加自己独有的属性和方法,如果觉得父类中的某些方法不适合自己还可以将其重写,也就是在子类中创建一个与父类待重写的方法同名的方法,这样实例调用时便会忽略掉父类中的方法而用重写之后的。还有一个重点就是将实例用作属性,比如将周杰伦的歌曲专门放在一个类中,在其总类(注意不是父类)中去调用他即可,这里不同与子类的继承,详情见如下代码(注释):

class stars():
    '''描述娱乐圈明星'''
    def __init__(self,name,age,high,famous):
        self.name=name
        self.age=age
        self.high=high
        self.famous=famous
        self.salary=10   #该属性为默认值
    def info(self):
        print(self.name+'今年'+str(self.age)+'岁;身高'+str(self.high)+'cm;知名度'+self.famous+'!')
    def update_salary(self,money):
        self.salary=money
        
class song():
    '''此类专门描述与周杰伦歌曲有关的信息'''
    def __init__(self,master='七里香'):   #使用关键字参数设置默认值
        self.master=master
    def sing(self):
        print('周杰伦的代表作是:'+self.master+'.')
    def fav_song(self):
        print('我最喜欢的周杰伦的歌曲有彩虹、甜甜的、听妈妈的话等~~~')
           
class stars_song(stars):
    '''继承父类stars的属性和方法'''
    def __init__(self,name,age,high,famous):
        super().__init__(name,age,high,famous)   #super()使得该类调用stars的方法__init__()
        self.ms=song()   #将类song()的实例作为ms的属性值
    def love(self):
        print('周杰伦爱的是蔡依林还是昆凌?')   #类stars_song的特有方法

sg=stars_song('周杰伦',39,175,'非常高')        
sg.info()  #调用父类中的方法
sg.love()  #调用自己的方法
sg.ms.sing()  #调用类song()中的方法


效果如下:

Python自学之路第十四步——与周杰伦有关的岁月_第1张图片

你可能感兴趣的:(Python自学之路)