#类的继承学习:人力系统
#员工分为两类 全职员工 FullTimeEmployee 兼职员工 PartTimeEmployee
#全职和兼职都有 姓名 name 工号 id 属性
#都具备”打印信息 print_info (打印姓名 工号)方法
#全职有 月薪 monthly_salary
#兼职有 日薪 daily_salary 每月工作天数 work_days
#全职和兼职都有”计算月薪 calculate_monthly_pay "方法 但具体计算结果不一样
class person_system: #定义父类,这个父类的里的属性可以是子类都有的
def __init__(self,name,id): #这个父类有name和id属性,self表示对象,一定要加上
self.name = name
self.id = id
def print_info(self): #这是父类中的一个方法 即输出name和其对应的id
print(f"{self.name}的工号是{self.id}") #用了f方法输出类似format方法
#不懂得可以去博主的作品里搜一下
#博主已经解释过了
class FullTimeEmployee(person_system): #定义一个子类这个子类继承person_system这个父类
def __init__(self,name,id,monthly_salary):
#这个FullTimeEmployee子类他自己有name,id,monthly_salary三个属性
super().__init__(name,id) #用super方法继承到父类的name和id属性
self.monthly_salary = monthly_salary
def calculate_monthly_pay(self):#子类的一个打印方法
return (f"{self.name}的工号为{self.id},他的工资为{self.monthly_salary}")
class PartTimeEmployee(person_system):#另一个属于person_system的子类
def __init__(self,name,id,daily_salary,work_days):
super().__init__(name,id)#同样用super方法继承name和id
self.daily_salary = daily_salary
self.work_days = work_days
def calculate_monthly_pay(self):#这个子类的一个打印方法
self.sum = self.work_days * self.daily_salary
return (f"{self.name}的工号为{self.id},他的工资为{self.sum}")
王强 = FullTimeEmployee("王强",15,5000)
#定义王强是什么,括号里面填的是属性
王强.print_info()
#调用FullTimeEmployee类里的print_info方法
print(王强.calculate_monthly_pay())
#调用FullTimeEmployee类里的calculate_monthly_pay方法
老旦 = PartTimeEmployee("老旦",11,85,100)
老旦.print_info()
print(老旦.calculate_monthly_pay())
用于继承的方法不只有这一种还有两种没有解释,super方法是博主个人认为比较好用且快捷的继承方法