1.请写出下列Java代码的输出结果   
  package   test;   
  public   class   FatherClass()   
      {   public   FatherClass()   
            {     System.out.println("FatherClass     Create");}   
            }   
          子类:   
      package   test;   
        import   test.FatherClass;   
        public   class     ChildClass   extends     FatherClass   
        {   
            public   ChildClass()   
              {     System.out.println("ChildClass   Create");     }   
          public   static   void   main(String[]     args)   
            {       FatherClass   fc=new   FatherClass();   
                  ChildClass     cc=new   ChildClass();     }       
            }   
        输出结果:

解决方案 »

  1.   

    这是一个继承的问题
    输出结果应该为:
    FatherClass Create
    FatherClass Create
    ChildClass Create
      

  2.   

    FatherClass           Create
    ChildClass       Create难道有什么陷阱?没有吧
      

  3.   

    1楼,是说的哪种情况应该是:package test;      
    import test.FatherClass;      
    public class ChildClass extends FatherClass{      
        public ChildClass(){
            super();//父类构造继承
            System.out.println("ChildClass Create");
        }      
        public static void main(String[] args){
            FatherClass fc=new FatherClass();      
            ChildClass cc=new ChildClass()
        }              
    }       
      

  4.   

    public       class       FatherClass()
    这句不知道是你故意写错的还是怎么,修改后  结果是:
    FatherClass           Create
    FatherClass           Create
    ChildClass       Create
      

  5.   

    输出结果:
    FatherClass  Create
    FatherClass  Create
    ChildClass   Create这是一个继承问题为什么会这样?请看<JAVA编程思想>里面的解释:用于基础类的构建器肯定在一个衍生类的构建器中调用,而且逐渐向上链接,使每个基础类使用的构建器都能得到调用。之所以要这样做,是由于构建器负有一项特殊任务:检查对象是否得到了正确的构建。一个衍生类只能访问它自己的成员,不能访问基础类的成员(这些成员通常都具有private属性)。只有基础类的构建器在初始化自己的元素时才知道正确的方法以及拥有适当的权限。所以,必须令所有构建器都得到调用,否则整个对象的构建就可能不正确。那正是编译器为什么要强迫对衍生类的每个部分进行构建器调用的原因。在衍生类的构建器主体中,若我们没有明确指定对一个基础类构建器的调用,它就会“默默”地调用默认构建器。如果不存在默认构建器,编译器就会报告一个错误(若某个类没有构建器,编译器会自动组织一个默认构建器)。
      

  6.   

    这个一个java类加载顺序的问题。java虚拟机先加载父类再加载子类。创建对象的过程是:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法,再执行子类的初始化块部分,最后是子类的构造方法。再new一个子类对象时,会先初始化父类的构造方法和初始化代码块。这样才能在子类中使用继承自父类的属性和方法。
      

  7.   

    习题给的结果是这个
    FatherClass     Create 
    FatherClass     Create 
    ChildClass       Create 但是我在eclipse里没办法调试编译不通过。
      

  8.   

    正确答案就是 :
    FatherClass   Create   
    FatherClass   Create   
    ChildClass    Create   
      

  9.   

    输出结果:
    FatherClass     Create 
    FatherClass     Create 
    ChildClass      Create 
    子类的构造函数里有没有super()都没有关系,在new子类的实例时都会先生成一个父类的实例的