package scjp;class Base1
{
int x=3;
public Base1(){}
public void show()
{
System.out.println("The value is "+x);
}
}class Derived extends Base1
{
int x=2;
public void Derived(){ }
public void show()
{
System.out.println("The value is:" +x);
}
}public class Test4 { public static void main(String[] args) {
Base1 b=new Derived();
b.show();
System.out.println("The value is "+b.x);
}}输出为 :
The value is:2
The value is:3我不是很清楚结果是怎么来的?请教
{
int x=3;
public Base1(){}
public void show()
{
System.out.println("The value is "+x);
}
}class Derived extends Base1
{
int x=2;
public void Derived(){ }
public void show()
{
System.out.println("The value is:" +x);
}
}public class Test4 { public static void main(String[] args) {
Base1 b=new Derived();
b.show();
System.out.println("The value is "+b.x);
}}输出为 :
The value is:2
The value is:3我不是很清楚结果是怎么来的?请教
Base1 b=new Derived();
将创建一个Derived类,变量的初始值将由Base1赋予,所以所有变量的值都为Base1中的值.
但是方法将仍为此类本身的方法