在XGS_2.java文件中已,创建员工类(Employee),请在此基础上完成下面代码的编写。 1. 定义津贴接口(IAllowance) 包含方法,该方法返回值为空类型,显示津贴项和金额,无参数:allowance( )。 2. 定义子类,教师类(Teacher),继承自Employee类,实现IAllowance接口。 成员变量: 工号(id) 私有String类型 职称(title) 私有String类型如:讲师、教授 月工资(salary) 私有double类型 教师总数量(amount) 私有int类型,表明当前总的教师数量,初始值为0 构造方法: 采用形参传参的方式,为教师姓名、年龄、职称、月工资初始化。并将教师总数量加1。 普通方法: (1)覆盖Object类的equals方法 当两个教师的姓名、工号和职称均相等时,认为是两者就是相等的。 (2)覆盖Object类中的toString( )方法 返回字符串格式如下:姓名:*****,年龄:*****,工号:****,月工资:**** (3)实现接口中的方法,显示津贴项目和金额,如“差旅补:660/月”。 3. 通过main函数测试。 (1)创建两个教师对象t1和t2,其中t1的姓名、年龄、工号、职称和月工资值为“张三”、48、20010101、“副教授”,7432.5;t2的各属性值自拟,分别输出t1和t2; (2)显示教师总人数; (3)将t1的职称改为“教授”; (4)调用equals方法判断两个教师对象是否相等,并输出; (5)输出t1的津贴信息。
时间: 2024-02-28 12:57:23 浏览: 70
sdk-xgs-robo-5.xx.x.rar_sdk robo_sdk-xgs-robo_sdk-xgs-robo-6.5.7
5星 · 资源好评率100%
请看下面的代码实现:
Employee.java
```java
public class Employee {
private String name;
private int age;
private String id;
public Employee(String name, int age, String id) {
this.name = name;
this.age = age;
this.id = id;
}
@Override
public String toString() {
return "姓名:" + name + ",年龄:" + age + ",工号:" + id;
}
}
```
IAllowance.java
```java
public interface IAllowance {
void allowance();
}
```
Teacher.java
```java
public class Teacher extends Employee implements IAllowance {
private String title;
private double salary;
private static int amount = 0;
public Teacher(String name, int age, String id, String title, double salary) {
super(name, age, id);
this.title = title;
this.salary = salary;
amount++;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Teacher) {
Teacher t = (Teacher) obj;
return this.getName().equals(t.getName()) && this.getId().equals(t.getId()) && this.title.equals(t.title);
}
return false;
}
@Override
public String toString() {
return super.toString() + ",月工资:" + salary;
}
@Override
public void allowance() {
System.out.println("差旅补贴:660/月");
}
}
```
Test.java
```java
public class Test {
public static void main(String[] args) {
Teacher t1 = new Teacher("张三", 48, "20010101", "副教授", 7432.5);
Teacher t2 = new Teacher("李四", 35, "20020102", "讲师", 5421.8);
System.out.println(t1);
System.out.println(t2);
System.out.println("教师总人数:" + Teacher.amount);
t1.setTitle("教授");
System.out.println("t1和t2是否相等:" + t1.equals(t2));
t1.allowance();
}
}
```
输出结果:
```
姓名:张三,年龄:48,工号:20010101,月工资:7432.5
姓名:李四,年龄:35,工号:20020102,月工资:5421.8
教师总人数:2
t1和t2是否相等:false
差旅补贴:660/月
```
阅读全文