代码拉取完成,页面将自动刷新
同步操作将从 jackfrued/review 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
继承:从已有的类创建新类的过程,提供继承信息的称为父类,得到继承信息的称为子类。
多态:不同的对象接收到相同的消息会表现出不同的行为。
实现多态最关键的步骤是,子类在继承父类过程中,重写父类方法,不同的子类给出不同的实现版本。
工资结算系统:部门经理固定月薪15000元,程序员计时支付工资,每小时200元,
销售员底薪1800元加上销售额提成5%,根据录入的员工信息,为每个员工结算月薪。
"""
from abc import abstractmethod, ABCMeta
# 抽象类(不能创建对象的类,专门用于继承)
class Employee(metaclass=ABCMeta):
"""员工"""
def __init__(self, name):
self.name = name
# 抽象方法(留给子类去实现的方法)
@abstractmethod
def get_salary(self):
pass
class Manager(Employee):
"""部门经理"""
def get_salary(self):
return 15000
class Programmer(Employee):
"""程序员"""
def __init__(self, name):
self.working_hour = 0
super().__init__(name)
def get_salary(self):
return 200 * self.working_hour
class Salesman(Employee):
"""销售员"""
def __init__(self, name):
self.sales = 0
super().__init__(name)
def get_salary(self):
return 1800 + self.sales * 0.05
def main():
emps = [
Manager('曹操'), Programmer('荀彧'), Programmer('郭嘉'),
Salesman('典韦'), Salesman('曹仁'), Programmer('张辽')
]
for emp in emps:
if isinstance(emp, Programmer):
emp.working_hour = int(input(f'请输入{emp.name}本月工作时间: '))
elif isinstance(emp, Salesman):
emp.sales = float(input(f'请输入{emp.name}本月销售额: '))
print(f'{emp.name}本月工资为: {emp.get_salary():.2f}元')
if __name__ == '__main__':
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。