(1)编写一个Person抽象类,要求含有姓名(name)年龄(age)两个私有属性以及吃饭(eat) 和睡觉(sleep)两个抽象方法,并写出带参构造方法 (2)创建学生(student)和工人(worker) 两个类,继承Person类,学生类多出了私有属性学号和学习方法(输出我爱学习),工人类多出了私有属性工号和工作方法(输出我爱工作), (3)在Test类中创建学生和工人类的实例对象,使用构造方法赋值,并输出所有属性和方法 (4) 创建LinkedList集合存5个学生对象,用迭代器和foreach循环,输出所有学生学号信息
时间: 2023-12-18 12:02:05 浏览: 72
(1)Person抽象类的代码如下:
```java
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();
}
```
(2)学生类和工人类的代码如下:
```java
public class Student extends Person {
private String studentId;
public Student(String name, int age, String studentId) {
super(name, age);
this.studentId = studentId;
}
public void study() {
System.out.println("我爱学习");
}
@Override
public void eat() {
System.out.println("学生吃饭");
}
@Override
public void sleep() {
System.out.println("学生睡觉");
}
}
public class Worker extends Person {
private String workerId;
public Worker(String name, int age, String workerId) {
super(name, age);
this.workerId = workerId;
}
public void work() {
System.out.println("我爱工作");
}
@Override
public void eat() {
System.out.println("工人吃饭");
}
@Override
public void sleep() {
System.out.println("工人睡觉");
}
}
```
(3)Test类的代码如下:
```java
import java.util.LinkedList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
// 创建学生和工人的实例对象
Student student = new Student("小明", 18, "001");
Worker worker = new Worker("张三", 30, "002");
// 输出所有属性和方法
System.out.println("学生的姓名:" + student.getName() + ",年龄:" + student.getAge() + ",学号:" + student.getStudentId());
student.eat();
student.sleep();
student.study();
System.out.println("工人的姓名:" + worker.getName() + ",年龄:" + worker.getAge() + ",工号:" + worker.getWorkerId());
worker.eat();
worker.sleep();
worker.work();
// 创建LinkedList集合存5个学生对象
LinkedList<Student> studentList = new LinkedList<>();
studentList.add(new Student("小红", 20, "003"));
studentList.add(new Student("小刚", 19, "004"));
studentList.add(new Student("小芳", 21, "005"));
studentList.add(new Student("小亮", 18, "006"));
studentList.add(new Student("小丽", 22, "007"));
// 用迭代器输出所有学生学号信息
System.out.println("使用迭代器输出所有学生学号信息:");
Iterator<Student> iterator = studentList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next().getStudentId());
}
// 用foreach循环输出所有学生学号信息
System.out.println("使用foreach循环输出所有学生学号信息:");
for (Student s : studentList) {
System.out.println(s.getStudentId());
}
}
}
```
输出结果如下:
```
学生的姓名:小明,年龄:18,学号:001
学生吃饭
学生睡觉
我爱学习
工人的姓名:张三,年龄:30,工号:002
工人吃饭
工人睡觉
我爱工作
使用迭代器输出所有学生学号信息:
003
004
005
006
007
使用foreach循环输出所有学生学号信息:
003
004
005
006
007
```