写抽象类Person 、Employee Person的属性:ID,gender,address 写构造方法;写普通方法:toString,写抽象方法:buyTicket(买票方法) Employee是Person的抽象子类 Employee的属性:department; 写构造方法;写普通方法:toString,写抽象方法:working 写非抽象子类 Teacher继承自Employee, Student 继承自Person Teacher的方法:toString(输出ID、gender、department) 还必须要写什么方法? Student的属性:school,sno 方法:toString,buyTicket(输出 学生买半票) 测试:教师 myJavaTeacher 的toString 、buyTicket 和 学生xiaoMing的buyTicket
时间: 2023-06-16 11:07:08 浏览: 48
抽象类 Person:
```
public abstract class Person {
protected String ID;
protected String gender;
protected String address;
public Person(String ID, String gender, String address) {
this.ID = ID;
this.gender = gender;
this.address = address;
}
public abstract void buyTicket();
@Override
public String toString() {
return "ID: " + ID + ", Gender: " + gender + ", Address: " + address;
}
}
```
抽象类 Employee:
```
public abstract class Employee extends Person {
protected String department;
public Employee(String ID, String gender, String address, String department) {
super(ID, gender, address);
this.department = department;
}
public abstract void working();
@Override
public String toString() {
return super.toString() + ", Department: " + department;
}
}
```
非抽象子类 Teacher:
```
public class Teacher extends Employee {
public Teacher(String ID, String gender, String address, String department) {
super(ID, gender, address, department);
}
@Override
public void working() {
System.out.println("Teaching");
}
@Override
public void buyTicket() {
System.out.println("Teacher buys a ticket.");
}
@Override
public String toString() {
return super.toString();
}
}
```
非抽象子类 Student:
```
public class Student extends Person {
private String school;
private String sno;
public Student(String ID, String gender, String address, String school, String sno) {
super(ID, gender, address);
this.school = school;
this.sno = sno;
}
@Override
public void buyTicket() {
System.out.println("Student buys a half-price ticket.");
}
@Override
public String toString() {
return super.toString() + ", School: " + school + ", Sno: " + sno;
}
}
```
测试:
```
public class Test {
public static void main(String[] args) {
Teacher myJavaTeacher = new Teacher("T1", "Male", "Beijing", "Computer Science");
System.out.println(myJavaTeacher.toString()); // 输出 ID: T1, Gender: Male, Address: Beijing, Department: Computer Science
myJavaTeacher.buyTicket(); // 输出 Teacher buys a ticket.
Student xiaoMing = new Student("S1", "Male", "Shanghai", "Fudan University", "00001");
xiaoMing.buyTicket(); // 输出 Student buys a half-price ticket.
}
}
```