`
nubiyu
  • 浏览: 3661 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中super的使用

阅读更多

Java中除了this,还有一个关键字super,super指父类,在类的继承中有重要的作用。

1.使用super访问父类的属性和方法

子类自动继承父类的属性和方法(除private修饰),一般情况下,直接使用父类的属性和方法,也可使用this来指明本对象。但有时为了明确指明父类的属性和方法,使用关键字super。

如:父类Person中有age属性,子类使用age,this.age,super.age来访问age是一样的:

void testSuper(){
	int a;
	a=age;
	a=this.age;
	a=super.age;
}

 当然,使用super不能访问子类自己定义的属性和方法。

有时需要使用super来区别同名的属性和方法。使用super可以访问被子类隐藏的同名变量,或者当子类覆盖了父类的同名方法的同时,想调用父类的方法,使用super。如:

void sayHello(){
	super.sayHello();
	System.out.println("My School is"+school);
}

 

2.使用父类的构造函数

在严格意义上,构造函数不允许继承,但这并不意味着子类不能调用父类的构造方法。子类在构造方法中,可以使用super来调用父类的构造函数。

Student(String name,int age,String school){
	super(name,age);
	this.school=school;
}

 

使用时,super应放在第一句。

3.使用super的注意事项

在使用super时,super指的是调用“对象”本身,而不是指父类中看见的属性和方法。由于他指的是对象,所以不能在static的环境中使用,包括类变量(static field)和类方法(static method),static语句块。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics