A类为父类;B类为A类的子类;
B a=new B()时,B类会调用A类的构造函数,但调用时是否建立A类句柄?已经给A类成员变量初始化了,用什么句柄调用A类的成员变量啊? 

解决方案 »

  1.   

    用super.A类成员变量 就可以啊!
      

  2.   

    找A类句柄干什么呢? 没必要吧,直接通过B类句柄就可以访问父类成员了
    实在的话,尝试一下这样A.super.成员变量,我没试过 :)
      

  3.   

    我想知道B类在调用A类的构造方法时是否给A类开辟内存空间?B类是可以使用A 类的成员变量和方法,但如果在A类的构造方法中给 A类自己的成员变量赋值了纳?
      

  4.   

    开辟内存空间~
    可以用this~
      

  5.   

    找A类句柄干什么呢? 没必要吧,直接通过B类句柄就可以访问父类成员了
    实在的话,尝试一下这样A.super.成员变量,我没试过 :)
    子类继承了父类 那他就继承了所以 除了父的构造不能继承 都可以继承 想用父的变量 直接就给你用 子类继承了父类  在装载的时候 系统自动就调用了父的构造方法 如果父的构造如下:
    public a()
    {}
    public a(int a....)
    {
    }
    子类:
    就要明确调用
      

  6.   

    创建子类对象时,会同时创建所有父类的对象,但是,除了在子类内部用super以外,没有其它途径可以访问这个父类的对象。
      

  7.   

    谢谢大家了
     Dan1980(有了Eclipse,再也不用记事本编程了,Eclipse真好!-)  ,我想再问问,那在super(3,4)传递的参数不就没什么意义了吗?
      

  8.   

    super(3,4)这又是一回事啦,这是调用父类的构造函数,而不是引用父类对象的句柄。在调用super()时,必须保证父类中定义了相应参数格式的构造函数,比如,你的类继承自父类A,那么你在调用super()时,必须保证父类中有一个不带参数的构造函数,即A();如果你要像super(3, 4) 这样来调用,那么A中必须要有一个类似于A(int, int)或A(double, double)等这样的构造函数。
      

  9.   

    如果你不按照父类中的某一个构造函数的参数格式来调用super()的话,那就不光是没有意义了,而是根本不能编译。
      

  10.   

    只要A(父类)不是私有的,就可以直接用 B(子类)的对象a 可以访问!!!!!!!!!