作者: 陆强强 时间: 2012-7-15 17:17
class Demo
{
public static void main(String[] args) throws IOException
{
new Zi().show();
}
}
class Fu
{
int num=4;
}
class Zi extends Fu
{
int num=5;
void show()
{
System.out.println(this.num);//new Zi()对象的引用。所以num=5。在子类自己没有自定义 num的时候会继承父类的num所以楼主的情况num=4
System.out.println(super.num);//父类的引用。num=4,在子类没有num的时候
}
} 作者: 黑马刘涛 时间: 2012-7-15 17:21 本帖最后由 黑马刘涛 于 2012-7-15 17:31 编辑
class Fu
{
int num=4;
}
class Zi extends Fu
{
void show()
{
System.out.println(this.num); //this表示本类对象的引用,this.num就是继承自父类的num
//System.out.println(super.num);// super表示父类对象的应用,super.num就是父类的num
}
}
class Fu
{
int num=4;
}
class Zi extends Fu
{
void show()
{
System.out.println(this.num);------,首先告诉楼主:变量没有继承关系,你这里的this的意思是---当前对象的num,也就是zi类对象的mun
System.out.println(super.num); 你这里的意思是调用父类的num变量
}
} 作者: 杨康 时间: 2012-7-15 19:50
this与super用法基本一致,当一个类继承另一个类时,super代表的是父类的引用,this代表的是本类引用。
在你的例子中,没有创建对象,this与super指的是同一个值作者: 。_Smileヾ淡莣 时间: 2012-7-15 23:28
this和super用法几乎一样,this.代表的是本类引用,this()调用的是本类的构造方法,而super.代表的是父类引用,sper()调用的是父类的构造方法。都能创建对象;子类中至少会有一个构造函数会去访问父类的构造函数
class Fu
{
int num=4;
}
class Zi extends Fu
{
void show()
{
System.out.println(this.num);
//System.out.println(super.num);
}
}
你的这个this.num是指本类的对象;当前num对象;
你的这个super.num是指父类的对象;由于class Zi extends Fu那么这个super指的num;就是指的fu类num中的值;
如果你还是不太清楚的话:我觉得你还是好好在看看继承视频;
作者: 陆鹏 时间: 2012-7-16 00:08
class Fu
{
int num=4;
}
class Zi extends Fu
{
void show()
{
System.out.println(this.num);// 这里表示引用 Zi这个对象的num,由于Zi没有定义num,而Zi却继承了Fu,所以就可以直接用Fu的num
//再告诉你,如果Zi有个同名的num,就优先找this的num。也就是Zi里面定义的sum。