编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音
------使用类的封装继承多态的问题
class Instrumnet():#乐器类
def make_sound(self):
pass
class Erhu(Instrumnet):#二胡是乐器可以继承乐器类
def make_sound(self):
print('二胡在演奏')#重写父类方法
class Pinao(Instrumnet):#继承
def make_sound(self):
print('钢琴在演奏')#重写父类方法
class Violin(Instrumnet):#继承
def make_sound(self):
print('小提琴在演奏')#重写父类方法
# 演奏的函数
def play(instrument):
instrument.make_sound()
class Bird():
def make_sound(self):
print('小鸟在唱歌')
if __name__=='__main__':
play(Erhu())
play(Violin())
play(Violin())
play(Bird())
使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息
# 抽取共同信息 作为父类
class Car(object):
def __init__(self,type,num):#车的品牌 车牌号
self.type=type
self.num=num
#车可以完成的工作
def start(self):
pass
def stop(self):
pass
class Taxi(Car): #出租汽车
def __init__(self,type,num,company):#出租汽车的车型 车牌 公司
super().__init__(type,num)#调用自己的值去赋值
self.company=company
#重写方法
def start(self):
print('乘客您好!')
print(f'我是{self.company}出租车公司的,我的车牌是{self.num},请问您要去哪里?')
def stop(self):
print('目的地到了,请您付款下车,欢迎再次乘坐!')
class FamilyCar(Car): #出租汽车
def __init__(self,type,num,name):#自己的车型 车牌 姓名
super().__init__(type,num)#调用自己的值去赋值
self.name=name
#重写方法
def start(self):
print(f'我是{self.name},我的汽车我做主')
def stop(self):
print('目的地到了,我们去玩吧!')
if __name__ =='__main__':
taxi=Taxi('上海大众','京A888','长城公司')
taxi.start()
taxi.stop()
familycar=FamilyCar('广汽丰田','京8900','张飞')
familycar.start()
familycar.stop()