1、使用super访问父类中的域和方法
- 由于继承,this也可以访问父类的域和方法,但有时为了明确的指名父类的域和方法用super。
- super不可访问子类中的域和方法。
-
super可以访问父类与当下类同名的域和方法。
例:super.name=name;
super.age=age;使用super调用父类中的字段
super.say();//使用super调用了父类中与当前类同名的方法
2、使用super访问父类中的构造方法。
- 构造方法是不可继承的。
-
子类中 可以用super调用父类中的构造方法。
例:super(name,age);//调用了父类中的构造方法。必须放在首句
public class Person {
String name;
int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
public void say() {
System.out.println("hello word");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
public class Student extends Person {
String schooolname;
int number;
private String schoolname;
Student(String name,int age, String schoolname){
//super.name=name;super.age=age;使用super调用父类中的字段
super(name,age);//调用了父类中的构造方法。必须放在首句
this.schoolname=schoolname;
}
public void say() {
super.say();//super:调用了父类中与当前类同名的方法
System.out.println("my name is:"+name);
System.out.println("我的年龄是:"+age);
System.out.println("my school is:"+schoolname);
}
public static void main(String[] args) {
Student s1=new Student("李",21,"xxx学校");
s1.say();