下面这个程序的输出结果是:
This is Con!
This is A!
输出第二句没问题!可是问题是怎么会输出第一句:This is Con!呢?
在线等答案!谢谢!
package test;public class ConTest
{
    public static void main(String[] args)
    {        A ex=new A();
//ConF c = new ConF();
    }}class ConF
{
    public ConF()
    {
System.out.println("This is Con!");
    }
}class A extends ConF
{
    public A()
    {
System.out.println("This is A!");
    }
}

解决方案 »

  1.   

    因为A是从ConF继承过来的,所以会先调用Conf() 生成一个Conf对象,然后再转换成A对象
      

  2.   

    继承的时候会先调用Conf()生成一个Conf对象?不对吧?
      

  3.   

    先调用父类的构造函数呀,就有了This is Con
      

  4.   

    先调用父类的构造函数呀,就有了This is Con
      

  5.   

    new A();
    的同时也调用了conf的构造子
      

  6.   

    关于父类构造函数调用子类成员的困惑 
    http://community.csdn.net/Expert/topic/4718/4718592.xml?temp=.4087641
      

  7.   

    构造函数调用时,先调用父类的,然后调用子类的。override 则是子类有该方法,先调子类,否则调用父类的。
      

  8.   

    对象初始化的顺序问题,建议看think in java
      

  9.   

    public ConF()
    方法是爷类的构造方法,构造方法在每天创建实例的时候都会调用。这个问题很简单。楼主基础不好哟。
      

  10.   

    public ConF()
    方法是爷类的构造方法爷类 嘿嘿  弓虽 口圭
      

  11.   

    和你那个“Super”问题一样,建议看TIJ的复用类那一章。
      

  12.   

    不会生成ConF对象,但会调用其构造函数。