对于(super代表当前子类对象父类的引用)这句话我就完全不明白了,求解答。 作者: heke 时间: 2013-11-3 22:33
this代表了本类的对象,即代表了它所在函数所属对象的引用,也就是说,哪个对象调用这个函数,this就代表哪个对象。
super:父类对象引用,用于子类初始化父类构造函数时等
比如函数覆盖:当子类同父类出现相同函数时,子类对象调用该函数时,会运行子类内容,如同覆盖谷类函数一样。实际上并没有覆盖父类的函数,如果还需要调用父类的这个方法,需要用super.方法名即可。
class Father
{
int num = 3;
void show()
{
System.out.println(num);
}
}
class Son extends Father
{
int num = 5;
//复写父类函数
void show()
{
System.out.println(num);//this引用,此处省略this,结果是5
System.out.println(super.num);//super引用,结果是3.
}
}
class Demo
{
public static void main(String [] args)
{
Son s = new Son();
s.show();
}
}作者: 那得好好想想 时间: 2013-11-4 10:17
this就代表你当前的这个类的对象,this不能再类外面使用。如果你在class外面使用,系统不知道你这个this是指代的谁。
super也差不多,必须在类里面使用,代表你这个类的父类的对象,如果你在类外面使用super,那谁能知道你想调用哪个父类? super其实就相当于你在子类创建了一个父类的对象,用这个对象来调取一些父类的方法。这样好理解么作者: ciowok 时间: 2013-11-4 11:25
this:表示动态绑定的当前对象
class A{ int a=1;
void a(){
System.out.println(this.a);
};
}
class B{
int b = 2;
void b(){
System.out.println(this.b);
}
}
main方法:
A a = new A();
a.a();//输出语句的this就是a对象
B b = new B();
b.b();//this就是b对象 作者: 黄炳期 时间: 2013-11-4 11:51
帖子已重新分类,若仍有疑问,可重新提问。作者: 何超 时间: 2013-11-4 20:56
我跟你理解的一样的,也是哪个对象调用那个方法那么this就是指向那个调用方法的对象的!