class Animal {
String name="Animal";
int leg=0;
boolean mood=true;
public Animal() { }
public Animal(String animal)
{
this.name=animal;
}
}class frog extends Animal
{
frog(){}
frog(String temp)
{
super(temp);
System.out.println("From Frog :"+this.name);
System.out.println("From Animal:"+super.name);
}
public static void main(String[] args) {
frog f=new frog("frog");
}
}为何运行出来的结果 this.name 和 super.name 都是frog呢 super.name应该是用父类的"Animal"这个结果才对啊 请高手帮帮小弟
String name="Animal";
int leg=0;
boolean mood=true;
public Animal() { }
public Animal(String animal)
{
this.name=animal;
}
}class frog extends Animal
{
frog(){}
frog(String temp)
{
super(temp);
System.out.println("From Frog :"+this.name);
System.out.println("From Animal:"+super.name);
}
public static void main(String[] args) {
frog f=new frog("frog");
}
}为何运行出来的结果 this.name 和 super.name 都是frog呢 super.name应该是用父类的"Animal"这个结果才对啊 请高手帮帮小弟
所以this.name被重定向为super.name如果你在frog类里面也定义一个name属性,那么结果就不同了
换句话说,如果name属性是通过继承得到的(而不是单独定义)
那么this.name和super.name就完全是一回事,是同一个变量的两个不同的名字。
这回懂了吧