编写相应的java程序

定义抽象类Student,包含学习、饮食、运动等相关抽象方法,行走默认方法walk(),以及休息静态方法rest();定义小学生类Pupil,继承Student,重写抽象类相关方法;定义大学生类Undergraduate,继承Student, 重写抽象类相关方法;定义主类,实例化两个类的对象,进行相关测试与结果分析。

该回答引用chatgpt:

// 抽象类Student
abstract class Student {
    public abstract void study();
    public abstract void eat();
    public abstract void exercise();
    public void walk() {
        System.out.println("走路");
    }
    public static void rest() {
        System.out.println("休息");
    }
}

// 小学生类Pupil
class Pupil extends Student {
    public void study() {
        System.out.println("小学生学习");
    }
    public void eat() {
        System.out.println("小学生吃饭");
    }
    public void exercise() {
        System.out.println("小学生运动");
    }
}

// 大学生类Undergraduate
class Undergraduate extends Student {
    public void study() {
        System.out.println("大学生学习");
    }
    public void eat() {
        System.out.println("大学生吃饭");
    }
    public void exercise() {
        System.out.println("大学生运动");
    }
}

// 主类
public class Main {
    public static void main(String[] args) {
        Student pupil = new Pupil();
        pupil.study();
        pupil.eat();
        pupil.exercise();
        pupil.walk();
        Student.rest();

        Student undergraduate = new Undergraduate();
        undergraduate.study();
        undergraduate.eat();
        undergraduate.exercise();
        undergraduate.walk();
        Student.rest();
    }
}


我们首先定义了一个抽象类Student,其中包含了学习、饮食、运动等相关抽象方法study()、eat()和exercise(),还有一个默认实现的方法walk()和一个静态方法rest()。然后,我们定义了小学生类Pupil和大学生类Undergraduate,它们分别继承了Student类,并重写了其中的相关抽象方法。最后,我们在主类中实例化了一个Pupil对象和一个Undergraduate对象,并进行了相关测试,调用了它们的方法和静态方法。

public abstract class Student {
    public abstract void study();
    public abstract void eat();
    public abstract void exercise();
    
    public void walk() {
        System.out.println("行走");
    }
    
    public static void rest() {
        System.out.println("休息");
    }
}
public class Pupil extends Student {
    @Override
    public void study() {
        System.out.println("小学生在学习");
    }
    
    @Override
    public void eat() {
        System.out.println("小学生在吃");
    }
    
    @Override
    public void exercise() {
        System.out.println("小学生在运动");
    }
}
public class Undergraduate extends Student {
    @Override
    public void study() {
        System.out.println("打学生在学习");
    }
    
    @Override
    public void eat() {
        System.out.println("大学生在吃");
    }
    
    @Override
    public void exercise() {
        System.out.println("大学生在运动");
    }
}
public class Main {
    public static void main(String[] args) {
        Pupil pupil = new Pupil();
        Undergraduate undergraduate = new Undergraduate();
        
        pupil.study();
        pupil.eat();
        pupil.exercise();
        pupil.walk();
        Student.rest();
        
        System.out.println();
        
        undergraduate.study();
        undergraduate.eat();
        undergraduate.exercise();
        undergraduate.walk();
        Student.rest();
    }
}

以下内容部分参考ChatGPT模型:


好的,根据您的要求,我来为您解答这个问题。

首先,我们需要定义一个抽象类Student,其中包含学习、饮食、运动等相关抽象方法,以及行走默认方法walk()和休息静态方法rest()。代码如下:

public abstract class Student {
    public abstract void study();
    public abstract void eat();
    public abstract void exercise();
    
    public void walk() {
        System.out.println("I am walking.");
    }
    
    public static void rest() {
        System.out.println("I am resting.");
    }
}

接下来,我们需要定义一个小学生类Pupil,继承自Student,重写相关方法。代码如下:

public class Pupil extends Student {
    @Override
    public void study() {
        System.out.println("I am studying in primary school.");
    }
    
    @Override
    public void eat() {
        System.out.println("I am eating in the school cafeteria.");
    }
    
    @Override
    public void exercise() {
        System.out.println("I am playing basketball in the playground.");
    }
}

最后,我们需要定义一个大学生类Undergraduate,继承自Student,同样需要重写相关方法。代码如下:

public class Undergraduate extends Student {
    @Override
    public void study() {
        System.out.println("I am studying in university.");
    }
    
    @Override
    public void eat() {
        System.out.println("I am eating in the student canteen.");
    }
    
    @Override
    public void exercise() {
        System.out.println("I am working out in the gym.");
    }
}

现在,我们就可以使用这些类来创建小学生和大学生的对象,然后调用它们的方法。例如:

Student pupil = new Pupil();
pupil.study(); // 输出"I am studying in primary school."
pupil.eat(); // 输出"I am eating in the school cafeteria."
pupil.exercise(); // 输出"I am playing basketball in the playground."
pupil.walk(); // 输出"I am walking."
Student.rest(); // 输出"I am resting."

System.out.println();

Student undergraduate = new Undergraduate();
undergraduate.study(); // 输出"I am studying in university."
undergraduate.eat(); // 输出"I am eating in the student canteen."
undergraduate.exercise(); // 输出"I am working out in the gym."
undergraduate.walk(); // 输出"I am walking."
Student.rest(); // 输出"I am resting."

希望我的回答能够帮到您,如果您还有任何问题或需要进一步的帮助,请随时告诉我。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快