Java面向对象 - 封装、继承和多态
第3关:super关键字的使用
任务描述
本关任务:掌握super
关键字的使用。
相关知识
为了完成本关任务,你需要掌握:1.super
关键字;2.super
关键字的使用;3.super
与this
关键字的比较。
super
关键字
在上一节中曾经提到过super
的使用,那super
到底是什么呢?super
关键字出现在子类中,我们new
子类的实例对象的时候,子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super
来引用,所以可以得出结论:super
主要的功能是完成子类调用父类中的内容,也就是调用父类中的属性或方法。
super
关键字的使用
super
关键字的用法如下:
super
可以用来引用直接父类的实例变量。super
可以用来调用直接父类方法。super()
可以用于调用直接父类构造函数。
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码:
-
声明一个名为
Person
的类,里面有name
与age
两个属性,并声明一个含有两个参数的构造方法; -
声明一个名为
Student
的类,此类继承自Person
类,添加一个属性school
,在子类的构造方法中调用父类中有两个参数的构造方法; -
实例化一个
Student
类的对象s
,为Student
对象s
中的school
赋值,打印输出姓名:张三,年龄:18,学校:哈佛大学
。
测试说明
测试输入:无
预期输出: 姓名:张三,年龄:18,学校:哈佛大学
package case3;
public class superTest {
public static void main(String[] args) {
// 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息
/********* begin *********/
Student s =new Student("张三",18,"哈佛大学");
System.out.println("姓名:"+s.name+",年龄:"+s.age+",学校:"+s.school);
/********* end *********/
}
}
class Person {
/********* begin *********/
String name;
int age;
public Person (String name, int age){
this.name=name;
this.age=age;
}
/********* end *********/
}
class Student extends Person {
/********* begin *********/
String school;
public Student(String name,int age,String school){
super(name,age);
this.school = school;
}
/********* end *********/
}