编写一个 Person 抽象类,要求含有姓名( name )、年龄( age )两个私有属性
以及吃饭( eat )和睡觉 ( sleep )两个抽象方法,并添加带参构造方法为name和age赋初值。
创建学生( Student )类并继承Person类,学生类多出了私有属性 学号 和 学习 方法(输出我爱学习)。
创建工人( Worker )类并继承Person类,工人类多出了私有属性 工号 和 工作 方法(输出我爱工作)。
在主函数中创建学生和工人类的实例对象,使用构造方法赋值,并输出所有属性和方法。
效果:
代码:
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();
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class Student extends Person {
private String studentId;
public Student(String name, int age, String studentId) {
super(name, age);
this.studentId = studentId;
}
public void eat() {
System.out.println("食堂吃饭");
}
public void sleep() {
System.out.println("在宿舍睡觉");
}
public void study() {
System.out.println("我爱学习");
}
public String getStudentId() {
return studentId;
}
}
class Worker extends Person {
private String workerId;
public Worker(String name, int age, String workerId) {
super(name, age);
this.workerId = workerId;
}
public void eat() {
System.out.println("自己做饭");
}
public void sleep() {
System.out.println("在家睡觉");
}
public void work() {
System.out.println("我爱工作");
}
public String getWorkerId() {
return workerId;
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student("张三", 20, "1024");
System.out.println("姓名:" + student.getName() + ",年龄:" + student.getAge() + ",学号:" + student.getStudentId());
student.eat();
student.study();
student.sleep();
Worker worker = new Worker("李四", 35, "1025");
System.out.println("姓名:" + worker.getName() + ",年龄:" + worker.getAge() + ",工号:" + worker.getWorkerId());
worker.eat();
worker.work();
worker.sleep();
}
}