靠,你想蒙骗我啊!public void FatherClass(){
System.out.println("FatherClass  Create");
}

解决方案 »

  1.   

    有种你改成
    public FatherClass(){
    System.out.println("FatherClass  Create");
    }
    ^_^
      

  2.   

    你的父类的构造方法写错了。不能有void。有了void就只当作一个普通的方法来对待了。
    public void FatherClass(){
    System.out.println("FatherClass  Create");
    }
      

  3.   

    这个问题太简单,ChildClass 继承了 FatherClass,不仅要执行自类的构造函数,还要执行父类的
      

  4.   

    "public void FatherClass()"是FatherClass的构造函数吗?如果是,你写的有问题。构造函数没有返回值,你去掉void就得到你想要的答案了,我已经试验过了。
      

  5.   

    不过这种思想过时了。class C1{
      public void mA(){
        System.out.println("C1.mA");
      }
    }class C2 extends C1{
      public void mA(){
        System.out.println("C2.mA");
      }
    }如果调用
    C1 c = new C2();
    c.mA();
    会输出:C2.mA。之所以这样是建立在我们在写C2.mA的时候假设我们已经知道C1.mA已经存在的基础之上的,如果我们已经定义了C2(这时的C1没有C1.mA而我们定义了C2.mA),再回头来修改C1,而且我们不知道有C2.mA存在,并且给C1增加了C1.mA。大家试想一下是不是会无缘无故的违背了我们的意图(就是说没有任何错误提示)?所以现在OO的新特色——C#就更改了这一点。如果按上述的写法,将输出:C1.mA。注意,千万不要说什么这有违背多态,有override和hide的区别对多态来说更加方便了,更加没有罪了。如果你以前没有这种认识,你认为是吗?^_^
      

  6.   

    ^_^,看看scjp的书,有void表示是普通方法,并不是构造方法
      

  7.   

    我初学不久,问问为什么输出两个FatherClass  Creat,我觉得只输出一个啊!!
      

  8.   

    gougou606(狗狗) 初始化一个类必须先调用其超类的构造方法
      

  9.   

    不信你继承下面的类试试
    class C{private C(){}}