class superclass
{
int x;
int y;
int z;
superclass()
{
x = 3;
y = 4;
z = x*z;
System.out.println(x+","+y+","+"super1:z = "+z);
}
superclass(int a,int b,int c)
{
x = a;
y = b;
z = c;
System.out.println("super2:z = "+z);
}
void superprint()
{
System.out.println("this is superclass");
}
}class subclass extends superclass
{
int x;
subclass()
{
     super(1,2,3);
     x = 13;
     System.out.println("super.x = "+super.x + "sub.x = "+ x);
     
}
void superprint()
{
System.out.println("this is subclass");
}
}public class myinherit {
public static void main(String[] argv)
{
subclass subobject = new subclass();
subobject.superprint();

superclass superobject = new subclass();
superobject.superprint();

superclass superobject1 = new superclass();
superobject1.superprint();

        }
}
那个父类变量  z 的值打出来怎么会是 0 呢

解决方案 »

  1.   

    superclass superobject1 = new superclass(); 调用了无参的构造函数:superclass() {
    x = 3;
    y = 4;
    z = x*z; //////这里 z ==0
    System.out.println(x+","+y+","+"super1:z = "+z);
    }
      

  2.   

    为什么会这样??,这是书上的一个例子,它打印出来的竟是 12,是不是书上错了,
     敬请 trumplet(检查) 老师 指点一下!!
      

  3.   

    它打印出来的竟是 12,
    ----------------------3 * 4 =12;是 z = x * y, 还是 z = x * z ?
      

  4.   

    太不好意思了 trumplet(检查)老师,是我的错,我抄程序都抄错了,看这份糊涂,谢谢您!!
      

  5.   

    你肯定是打错误,应该是
    z = x * y;
    而不是
    z = x * z;
    这是手误啊。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  6.   

    呵呵!!是啊,刚学JAVA,非常感谢您的帮助!!