今天动宝儿就与大家一起分享一下this和super的应用,看看Java里this和super是怎么一回事,究竟如何理解回答。
Java提供了一this关键字,this关键字总是指向调用该方法的对象。根据this出现的位置的不同,this作为对象的默认引用有2种情形:
1.构造器中引用(指向)该构造器正在初始化的对象;
2.在方法中引用(指向)调用该方法的的对象。
this很大的作用就是让一个类中的一个方法,访问该类里的另一个方法或者实例变量,示例:
public void run()
{
this.jump(); //jump()为另一个类的方法
}
this还可以,通过this调用另一个重载的构造器的初始化代码,this(parameter1,parameter2); 示例:
public Apple(){}public Apple(String name,String color)
{
this.name = name;
this.coloe = color;
}public Apple(String name,String color,double weight)
{
//通过this调用另一个重载的构造器的初始化代码
this(name,color);
this.weight = weight;
}
this可以代表任何对象,谁调用this所在方法,this就代表谁。Java允许对象的一个成员直接调用另一个成员,可以省略this前缀,但是,如果方法里有个局部变量和成员变量同名,要在该方法里访问这个被覆盖的成员变量,必须使用this前缀。
当子类覆盖(重写)了父类方法后,子类的对象将无法访问父类中被覆盖的方法,但使用super关键字可以在子类中调用父类中被覆盖的方法。
如果子类定义了和父类同名的实例变量,则会发生子类实例变量隐藏(不是覆盖)父类实例变量的情形,可以在子类定义的实例方法中通过super关键字访问父类中被隐藏的实例变量。
注意:
this、super在调用构造器方面:this调用的是同一个类中重构的构造器,super调用的是父类的构造器。另外:不管是否使用super调用来执行父类构造器的初始化代码,子类构造器总会默认调用父类构造器一次。
以上就是动宝儿给大家带来的this和super的应用,更多一手资讯尽在极悦。