创建一个抽象类Worker:属性有:工龄,工号,姓名,基本工资,;方法:构造函数;输出所有信息的方法show()
时间: 2024-03-25 09:39:49 浏览: 33
好的,以下是创建一个抽象类Worker的示例代码:
```python
from abc import ABC, abstractmethod
class Worker(ABC):
def __init__(self, name, worker_id, seniority, basic_salary):
self.name = name
self.worker_id = worker_id
self.seniority = seniority
self.basic_salary = basic_salary
@abstractmethod
def show(self):
pass
```
这里我们使用了Python中的abc模块来定义抽象类。在Worker类中,我们定义了构造函数,以及一个抽象方法show()。由于show()是一个抽象方法,因此我们不需要在这里实现它,但是我们需要在子类中实现它。
在构造函数中,我们定义了Worker类的四个属性:姓名、工号、工龄和基本工资。这些属性是Worker类的必需属性,因此我们在构造函数中进行了初始化。
相关问题
、(1)创建一个抽象类Worker: 属性:工龄、工号、姓名、基本工资 方法:构造函数;输出所有信息的方法show( 抽象方法Q计算工资SetPay (2)创建一个部门经理类,继承Worker类: 属性:岗位级别,实际工资 方法:构造函数;重写show(),输出所有信息;实现SetPay ,计算工资的方法(实际工资=基本工资+岗位级别*500+工龄*1000) (3)创建一个销售人员类,继承Worker类: 属性:销售金额,实际工资 方法:构造方法;重写show ,输出所有信息;实现SetPay 计算工资的方法(实际工资=基本工资+销售金额*系数(其中系数当销售金额大于100W时为0.09,小于100W时为0.08) (4)创建测试类,分别定义部门经理类和销售人员类对象,计算其工资,并输出信息。
以下是Java代码实现:
Worker类:
```java
public abstract class Worker {
private String name;
private String workerId;
private int seniority;
private double basicSalary;
public Worker(String name, String workerId, int seniority, double basicSalary) {
this.name = name;
this.workerId = workerId;
this.seniority = seniority;
this.basicSalary = basicSalary;
}
public abstract void show();
public abstract void setPay();
// getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWorkerId() {
return workerId;
}
public void setWorkerId(String workerId) {
this.workerId = workerId;
}
public int getSeniority() {
return seniority;
}
public void setSeniority(int seniority) {
this.seniority = seniority;
}
public double getBasicSalary() {
return basicSalary;
}
public void setBasicSalary(double basicSalary) {
this.basicSalary = basicSalary;
}
}
```
Manager类:
```java
public class Manager extends Worker {
private int level;
private double actualSalary;
public Manager(String name, String workerId, int seniority, double basicSalary, int level) {
super(name, workerId, seniority, basicSalary);
this.level = level;
}
@Override
public void show() {
System.out.println("姓名:" + getName());
System.out.println("工号:" + getWorkerId());
System.out.println("基本工资:" + getBasicSalary());
System.out.println("工龄:" + getSeniority());
System.out.println("岗位级别:" + level);
System.out.println("实际工资:" + actualSalary);
}
@Override
public void setPay() {
actualSalary = getBasicSalary() + level * 500 + getSeniority() * 1000;
}
}
```
Salesman类:
```java
public class Salesman extends Worker {
private double salesAmount;
private double actualSalary;
public Salesman(String name, String workerId, int seniority, double basicSalary, double salesAmount) {
super(name, workerId, seniority, basicSalary);
this.salesAmount = salesAmount;
}
@Override
public void show() {
System.out.println("姓名:" + getName());
System.out.println("工号:" + getWorkerId());
System.out.println("基本工资:" + getBasicSalary());
System.out.println("工龄:" + getSeniority());
System.out.println("销售金额:" + salesAmount);
System.out.println("实际工资:" + actualSalary);
}
@Override
public void setPay() {
double coefficient = salesAmount > 1000000 ? 0.09 : 0.08;
actualSalary = getBasicSalary() + salesAmount * coefficient;
}
}
```
Test类:
```java
public class Test {
public static void main(String[] args) {
Manager manager = new Manager("张三", "M001", 5, 10000, 2);
manager.setPay();
manager.show();
Salesman salesman = new Salesman("李四", "S001", 3, 5000, 1200000);
salesman.setPay();
salesman.show();
}
}
```
运行结果:
```
姓名:张三
工号:M001
基本工资:10000.0
工龄:5
岗位级别:2
实际工资:17000.0
姓名:李四
工号:S001
基本工资:5000.0
工龄:3
销售金额:1200000.0
实际工资:113000.0
```
创建一个工人类worker 以及一个list集合,在集合中添加三个工人信息:姓名 年龄 工资
好的,以下是 Python 代码示例:
```python
class Worker:
def __init__(self, name, age, salary):
self.name = name
self.age = age
self.salary = salary
workers = []
workers.append(Worker("张三", 25, 5000))
workers.append(Worker("李四", 30, 6000))
workers.append(Worker("王五", 28, 5500))
```
以上代码定义了一个名为 `Worker` 的类,其中包含了三个属性:`name`、 `age` 和 `salary`。接着创建了一个空的列表 `workers`,并通过 `append` 方法向其中添加了三个 `Worker` 对象,分别代表三个工人的信息。