super
super是一个关键字,super和this很类似,其语法是“super.”和“super()”,不能在静态方法中使用。在子类对象中,子类想访问父类的东西,可以使用“super.”的方式访问。
代码举例
在Person(父类)中创建一个属性name;
public class Person {
protected String name="小王同学";
}
在Student(子类)中创建一个属性和一个方法print方法
public class Student extends Person {
protected String name="小徐同学";
public void print(String name){
System.out.println(name);//输出的是方法里面的参数
System.out.println(this.name);//输出的是属性里面的name
System.out.println(super.name);//输出的是父类Person类里面的属性name
}
}
在Test(主类)中调用Student中的方法,并赋值
public class Test {
public static void main(String[] args) {
Student xingming = new Student();
xingming.print("小明同学");
}
}
得到结果如下:
如果需要使用super(); 则super();必须放在第一行
super注意点
- super 调用父类的构造方法,必须在构造方法的第一个。
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法。
与this对比:
this :本身调用者这个对象
super: 代表父类对象的应用
前提:
this:没有继承也可以使用
super: 只能在继承条件才可以使用
构造方法:
this (): 本类的构造
super(): 父类的构造