我正在学习Java,是初学者…请帮助我找出为什么它不起作用…
在以下程序中,我的目标是从主方法调用基类方法,而在派生类方法中不使用super关键字.
如代码中所示,main方法中的((A)b).num可以很好地工作,并且输出为预期的100,但是((A)b).disp()以B的方法而不是A的方法输出内容.
class A
{
int num=100;
public void disp()
{
System.out.println("Disp() of A:");
System.out.println(num);
}
}
class B extends A
{
int num=200;
public void disp()
{
System.out.println("Disp() of B:");
super.disp(); //100
System.out.println( num ); //200
}
}
class ques
{
public static void main(String a[])
{
B b=new B();
b.disp();
System.out.println();
((A)b).disp(); //doesn't work
System.out.println();
System.out.println(((A)b).num); //works