|
|
发表于 2023-6-27 14:24:23
|
显示全部楼层
0.通过子类对象对父类对象的方法重写
1.增加代码通用性
2.可以
3.如果像鸭子一样走路,像鸭子一样呱呱叫,那它就是一只鸭子
4.增强了内聚
5.不属于
0.
class staff:
def __init__(self,name,job,grade,year,uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
def get_uid(self):
return self.uid
def get_name(self):
return self.name
def get_job(self):
return self.job
def get_grade(self):
return self.grade
def get_year(self):
return self.year
def salary(self):
pass
class Employee(staff):
self.__init__(self,name,job,grade,year,uid)
super().get_uid()
super().get_name()
super().get_job()
super().get_grade()
super().get_year()
def salary(self):
return 3000 + 500 * self.grade + 50 * year
class Teamleader(staff):
self.__init__(self,name,job,grade,year,uid)
super().get_uid()
super().get_name()
super().get_job()
super().get_grade()
super().get_year()
def salary(self):
return 4000 + 800 * self.grade + 100 * year
class Manager(staff):
self.__init__(self,name,job,grade,year,uid)
super().get_uid()
super().get_name()
super().get_job()
super().get_grade()
super().get_year()
def salary(self):
return 5000 + 1000 * (self.grade + year)
uid = 10000
def main():
while State != "5":
State = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
if State == 1:
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
year = input("工龄:")
grade = input("级别:")
while job == 'E' and grade > 10:
grade = input("该职位最高级别为10,请重新录入级别:")
while job == 'T' and grade > 6:
grade = input("该职位最高级别为6,请重新录入级别:")
while job == 'M' and grade > 3:
grade = input("该职位最高级别为3,请重新录入级别:")
if job == 'E':
s = Employee(name,job,grade,year,uid)
elif job == 'T':
s = Teamleader(name,job,grade,year,uid)
elif job == 'M':
s = Manager(name,job,grade,year,uid)
uid += 1
print("录入成功!姓名:{},工号:{},薪资:{},".format(s.get_name(),s.get_uid(),s.salary())) |
|