RT。谢谢!!

解决方案 »

  1.   

    自己试一下就清楚了
    class A {
        public A() {
            System.out.println("A class");
        }
    }public class B extends A {
        public B() {
            System.out.println("B class");
        }    public static void main(String[] args) {
            new B();
        }
    }
      

  2.   

    那就是继承了,但是,张孝祥那本培训教程却写着:子类继承父类的所有成员变量和成员方法,但不继承父类的构造方法。在子类的构造方法中,可使用super(参数列表)调用父类的构造方法。 那他这话应该怎么理解呢?
      

  3.   

    如果阅读过Thinking in Java的兄弟,应该知道:子类虽然没有继承父类的构造函数,但是在初始化的时候,会在子类的构造函数之前,先加载父类的构造函数。
    class B{
      B(){
        System.out.println("B()");
      }
    }
    class C extends B{
      C(){
        System.out.println("C()");
    }public class A{
      public static void main(String[] arg){
        new C();
      }
    }显示结果表示:
    B()
    C()
      

  4.   

    其实子类继承父类的一切,即一个子类对象拥有一个完成的父类对象,只是这个完成的父类的对象管理着自己的访问权限,所以某些私有的属性或方法子类也访问不了
    我没看过张孝祥的培训教程,从楼主的疑问来看,我觉得应该是,父类的缺省构造函数在子类初始化时会被自动调用来完成相应的父类对象初始化,而带参数的构造函数则必须用super来调用
      

  5.   

    你可以在你的子类的构造函数中通过调用super()函数调用父类的构造函数!
      

  6.   

    子类在创建自己的对象实例的过程中必须创建被他继承的父类,所以在自身构造之前,会调用父类的构造函数。系统会默认使用super()来调用父类默认的构造函数,同样你也可以在括号内加入参数来调用有参数的构造函数
      

  7.   

    记在子类的构造函数,除非显示的写上super或者super(Object),第一行会被插入super()的,
      

  8.   

    即使什么都不做
    我总习惯在每个类的构造函数里写上super()