1.创建一个你所理解的学生类(Student), 至少含有3个属性,需体现出封装思想,必须含有study方法.
2.在上一题的基础上创建本科生类(Undergraduate), 继承学生类,重写study方法(study方法中输出“我爱Java”),并在main方法中调用。
- 学生类(Student)示例代码:
public class Student {
private String name; // 姓名,私有属性
private int age; // 年龄,私有属性
private String major; // 专业,私有属性
public Student(String name, int age, String major) { // 构造方法
= name;
this.age = age;
this.major = major;
}
public String getName() { // 获取姓名的公有方法
return name;
}
public int getAge() { // 获取年龄的公有方法
return age;
}
public String getMajor() { // 获取专业的公有方法
return major;
}
public void study() { // 学习方法
System.out.println("学生正在学习");
}
}
上述代码中,Student类中的属性都是私有的,只能在类内部被访问,外部无法直接访问。通过提供公有的get方法来获取属性的值,保证了属性的访问受到控制。
- 本科生类(Undergraduate)示例代码:
public class Undergraduate extends Student {
public Undergraduate(String name, int age, String major) { // 构造方法
super(name, age, major);
}
@Override
public void study() { // 重写study方法
System.out.println("我爱Java");
}
}
上述代码中,Undergraduate类继承自Student类,重写了其中的study方法。在main方法中,我们可以使用下列代码来测试:
public static void main(String[] args) {
Student student = new Student("张三", 20, "计算机科学与技术");
student.study(); // 输出:学生正在学习
Undergraduate undergraduate = new Undergraduate("李四", 21, "软件工程");
undergraduate.study(); // 输出:我爱Java
}
从输出结果可以看出,Undergraduate类的study方法确实被重写了,输出了新的内容。