子类自己没有定义构造器,就会调用父类默认的构造器,而当一个类没有声明继承哪一个类时,jvm默认它继承object类,那么它就要调用object的默认构造方法,是这样吗?
希望诸位给提个醒。

解决方案 »

  1.   


    是的子类自己没有定义构造器:
    默认 public AA(){
        super();}
      

  2.   

    恩,调用object的默认构造方法
      

  3.   

    是的,默认使用父类构造器。请看代码
    class A{
        public A(){
           System.out.println("construct A!");
        }
    }
    class B extends A{
        
    }
    public class Test1 {    /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            B b = new B();
        }}运行结果:construct A!
      

  4.   

    记得每个类里面都有一个默认的super.xx(),如果没有继承的话他的父类就是object,所以super调用的就是object里面的构造器
      

  5.   

    继承一个类的话可以在集成类中的构造方法的第一行写  super();
    其实你自己的说法也是对的。
      

  6.   

    当一个类没有声明继承哪一个类时,jvm默认它继承object类,当新建对象,调用无参构造器时
    如果子类重写了默认构造器,那么,调用自己重写后的无参构造器
    如果子类没重写默认构造器,那么新建对象时,调用object默认构造器
    当新建对象,调用重载后的构造器时,调用重载构造器
      

  7.   

    子类构造器里边,又要调用基类的构造器,所以Object默认构造器一定被调用
      

  8.   

    jvm默认它继承object类
    jvm只执行编译后的字节码,是不会默认类继承Object的。