个人理解作者: 罗海云 时间: 2013-2-21 21:47
假如是你这个代码.我想应该是不能用子类的变量.. 我觉得没有什么方法...因为你子类里什么方法都没有.但是你可以在这个class A{
String a = "我是父类成员变量。";
public void show(){
System.out.println(new B().a); }
}
class B extends A{
String a = "我是子类成员变量。";
public static void main(String[] srgs){
B b = new B();
b.show();
System.out.println(b.a);
}
}作者: 胥文 时间: 2013-2-21 21:58
如果想在调用show()方法时调用子类的成员变量,那么就只能复写父类的方法
class Fu
{
String a ="我是父类成员变量";
public void show()
{
System.out.println(a);//这里你可以这么理解,此处的a=super.a(此处在程序中是不能写成super.a,可以这么理解),但是你想改成this.a,又什么
//操作都没有,那就只能按照父类的来,要想按自己的来就必须复写该方法,就好比你要吃东西,然后你父类给你吃苹果
//,但是你却想吃梨,却又不去拿,那就自有别人给你什么,你就吃什么了,纯属个人理解
}
}
public class Test2 extends Fu {
String a = "我是子类成员变量";
public static void main(String[] args) {
Fu f = new Test2();
f.show();
Test2 t = (Test2)f;
System.out.println(t.a);//调用的是子类变量
System.out.println(f.a);//调用的是父类变量
}
}作者: 刘勇强 时间: 2013-2-21 22:00 本帖最后由 刘勇强 于 2013-2-21 22:10 编辑