华为面试其中一题

03-03-08 0763lch
         

请问高手,为什么输出结果是:

111

666

而不是

111

222

class BaseClass {

final static int x = 111 ;

public BaseClass()

{

System.out.println (" The value of x is " + x );

getVar ( ) ;

}

public void getVar ( ) { System.out.println (" The value of x is 222" );;}

}

public class Bean1 extends BaseClass

{

final static int x = 555 ;

public Bean1()

{ super();

}

public void getVar ( ) { System.out.println (" The value of x is 666" );;}

public static void main (String args[]){

Bean1 b=new Bean1();

}}

         

cute
2003-03-09 11:02

方法覆盖,方法名一样子类会覆盖父类的方法。但父类的方法并不代表就消失了。

用super.getVar(); 父类的值就输出了。。

0763lch
2003-03-09 17:07

谢谢!