super的使用方法(Java)

  • Post author:
  • Post category:java




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();