楼主:
1、this代表的是本类对象,不能调用属于父类的成员(这里注意:是属于父类的成员,而不是子类继承父类后属于子类的成员)。
2、super,一般用于子类构造函数中的第一行,super(参数列表),表示调用父类构造函数。如果不写super(),表示子类构造函数会默认调用父类空参数的构造函数。
class Fu
{
int num = 3;
String name;
void show(int num)
{
this.num = num;//在this.num中num是成员变量,this是Fu的对象。红色标出的num是同一个num。楼主难道说的这里,this调用父类成员?注意:
//这里的this与子类Zi 方法function()中的this不是同一个对象
}
Fu(String name)
{
this.name = name;
}
}
class Zi extends Fu
{
void function(int num)
{
this.num = num;//这大概是楼主说的this,调用父类成员的情况吧。其实不是的,在这里,函数参数num与父类Fu成员变量num同名,同时也与子类Zi 继承Fu后属于Zi的
//num同名。关键是this.num 这里的num是属于Zi的,虽然Zi 中没有定义,但是它继承了Fu所以也有个num事属于Zi 的。this是Zi的对象。
}
Zi(String name)
{
super(name);//此时super(name)调用的是父类的构造函数
}
}
|