编写一个Person抽象类,要求含有姓名(name)年龄(age)两个私有属性以及吃饭(eat) 和睡觉(sleep)两个抽象方法,并写出带参构造方法 创建学生(student)和工人(worker) 两个类,继承Person类,学生类多出了私有属性学号和学习方法(输出我爱学习),工人类多出了私有属性工号和工作方法(输出我爱工作), 在Test类中创建学生和工人类的实例对象,使用构造方法赋值,并输出所有属性和方法 创建LinkedList集合存5个学生对象,用迭代器和foreach循环,输出所有学生学号信息
时间: 2023-12-18 20:02:24 浏览: 55
下面是符合要求的代码示例:
```java
import java.util.LinkedList;
import java.util.Iterator;
public abstract class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public abstract void eat();
public abstract void sleep();
}
class Student extends Person {
private String studentNo;
public Student(String name, int age, String studentNo) {
super(name, age);
this.studentNo = studentNo;
}
@Override
public void eat() {
System.out.println("I love eating.");
}
@Override
public void sleep() {
System.out.println("I love sleeping.");
}
public void study() {
System.out.println("I love studying.");
}
public String getStudentNo() {
return studentNo;
}
}
class Worker extends Person {
private String workerNo;
public Worker(String name, int age, String workerNo) {
super(name, age);
this.workerNo = workerNo;
}
@Override
public void eat() {
System.out.println("I love eating.");
}
@Override
public void sleep() {
System.out.println("I love sleeping.");
}
public void work() {
System.out.println("I love working.");
}
public String getWorkerNo() {
return workerNo;
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student("Tom", 18, "001");
Worker worker = new Worker("Jerry", 30, "002");
System.out.println("Student name: " + student.getName());
System.out.println("Student age: " + student.getAge());
System.out.println("Student studentNo: " + student.getStudentNo());
student.eat();
student.sleep();
student.study();
System.out.println("----------------");
System.out.println("Worker name: " + worker.getName());
System.out.println("Worker age: " + worker.getAge());
System.out.println("Worker workerNo: " + worker.getWorkerNo());
worker.eat();
worker.sleep();
worker.work();
System.out.println("----------------");
LinkedList<Student> studentList = new LinkedList<>();
studentList.add(new Student("Lucy", 20, "003"));
studentList.add(new Student("Lily", 19, "004"));
studentList.add(new Student("Bob", 21, "005"));
studentList.add(new Student("Alice", 22, "006"));
studentList.add(new Student("Kevin", 23, "007"));
Iterator<Student> it = studentList.iterator();
while (it.hasNext()) {
Student s = it.next();
System.out.println("Student studentNo: " + s.getStudentNo());
}
System.out.println("----------------");
for (Student s : studentList) {
System.out.println("Student studentNo: " + s.getStudentNo());
}
}
}
```
输出结果:
```
Student name: Tom
Student age: 18
Student studentNo: 001
I love eating.
I love sleeping.
I love studying.
----------------
Worker name: Jerry
Worker age: 30
Worker workerNo: 002
I love eating.
I love sleeping.
I love working.
----------------
Student studentNo: 003
Student studentNo: 004
Student studentNo: 005
Student studentNo: 006
Student studentNo: 007
----------------
Student studentNo: 003
Student studentNo: 004
Student studentNo: 005
Student studentNo: 006
Student studentNo: 007
```