用python创建一个名为Employee的类,并在其中定义一个get_salary()方法。创建两个子类,Manager和Clerk,它们都应该继承自Employee类。分别在这两个子类中重写get_salary()方法,以便能够根据职位不同返回不同的薪水。
时间: 2024-02-18 18:04:38 浏览: 158
好的,这是一个简单的示例代码,实现了你的需求:
```python
class Employee:
def get_salary(self):
pass
class Manager(Employee):
def get_salary(self):
return 10000
class Clerk(Employee):
def get_salary(self):
return 5000
manager = Manager()
clerk = Clerk()
print(manager.get_salary()) # 输出 10000
print(clerk.get_salary()) # 输出 5000
```
在这个示例代码中,我们先定义了一个名为`Employee`的基类。这个基类中有一个名为`get_salary()`的方法,但是它并没有具体的实现。
然后我们定义了两个子类,`Manager`和`Clerk`,它们都继承自`Employee`基类。在这两个子类中,我们重写了`get_salary()`方法,分别返回了经理和职员的薪水。
最后,我们创建了一个`Manager`对象和一个`Clerk`对象,并分别调用了它们的`get_salary()`方法,从而得到了不同的薪水。
相关问题
2. 编程实现模拟简单的企业职工管理程序。请按继承层次构建企业的各种职工类型,包括超类Employee,以及相应的子类Manager、Secretary和Programmer,从Manager继承又可得到Executive。超类Employee有编号,姓名,年龄,工资、地址和雇佣日期等信息。普通职工Employee的薪资只有基本工资, Manager、Secretary和Programmer的薪资为基本工资再加上10%奖金,而Executive的薪资为基本工资再加15的奖金,使用数组来存储员工对象,实现员工的遍历和查找功能(即输出所有员工对象的信息和,查找某个员工对象的信息)
以下是一个简单的企业职工管理程序的实现:
```python
class Employee:
def __init__(self, ID, name, age, salary, address, hire_date):
self.ID = ID
self.name = name
self.age = age
self.salary = salary
self.address = address
self.hire_date = hire_date
def __str__(self):
return f"ID: {self.ID}, Name: {self.name}, Age: {self.age}, Salary: {self.salary}, Address: {self.address}, Hire Date: {self.hire_date}"
class Manager(Employee):
def __init__(self, ID, name, age, salary, address, hire_date):
super().__init__(ID, name, age, salary, address, hire_date)
def get_salary(self):
return self.salary * 1.1
class Secretary(Employee):
def __init__(self, ID, name, age, salary, address, hire_date):
super().__init__(ID, name, age, salary, address, hire_date)
def get_salary(self):
return self.salary * 1.1
class Programmer(Employee):
def __init__(self, ID, name, age, salary, address, hire_date):
super().__init__(ID, name, age, salary, address, hire_date)
def get_salary(self):
return self.salary * 1.1
class Executive(Manager):
def __init__(self, ID, name, age, salary, address, hire_date):
super().__init__(ID, name, age, salary, address, hire_date)
def get_salary(self):
return self.salary * 1.15
# 创建员工对象
employees = []
employees.append(Manager(1, "John", 35, 5000, "New York", "2010-01-01"))
employees.append(Secretary(2, "Jane", 25, 3000, "Los Angeles", "2012-06-01"))
employees.append(Programmer(3, "Mike", 30, 4000, "Chicago", "2015-05-01"))
employees.append(Executive(4, "Tom", 40, 6000, "San Francisco", "2008-03-01"))
# 遍历员工对象
for employee in employees:
print(employee)
# 查找员工对象
for employee in employees:
if employee.ID == 2:
print(employee)
```
在上面的代码中,我们先定义了一个超类Employee,包括编号、姓名、年龄、工资、地址和雇佣日期等信息。然后,我们定义了Manager、Secretary、Programmer和Executive这四个子类,分别继承自Employee,并且分别实现了get_salary方法来计算薪资。最后,我们创建了一个员工对象数组,存储了不同类型的员工对象。我们可以遍历这些员工对象并输出它们的信息,也可以通过遍历查找某个员工对象的信息。
设计一个雇员类及其子类经理类
好的,我可以为您设计一个雇员类及其子类经理类的实现,具体如下:
```python
class Employee:
def __init__(self, name, age, salary):
self.name = name
self.age = age
self.salary = salary
def get_name(self):
return self.name
def get_age(self):
return self.age
def get_salary(self):
return self.salary
class Manager(Employee):
def __init__(self, name, age, salary, department):
super().__init__(name, age, salary)
self.department = department
def get_department(self):
return self.department
```
以上是一个基本的员工类和子类经理类的实现,员工类包含了姓名、年龄和薪资等属性,以及获取这些属性的方法。子类经理类在员工类的基础上新增了部门属性,并且通过调用父类的构造函数来完成属性的初始化。子类经理类也新增了获取部门属性的方法。
阅读全文