class base{
  base(){}
  base(int i){}
}
class derived extends base{
  derived(){}
}
现在要用derived生成对象,但是这个对象在生成时要一个int 的参数,并且不能更改derived类

解决方案 »

  1.   

    请具体些
    base a = new derived(5);
    好像不可以吧
      

  2.   

    base a =(base) new derived(5);
    a.(5);
      

  3.   

    my above is wrong
    base a =(base) new derived();
    a.(5);
      

  4.   

    你的base(5)可以这么调用吗?
    base(int i)是构造函数,不是成员函数
      

  5.   

    base obj1 = new derived();
    obj.base(5);
      

  6.   

    “class base{
      base(){}
      base(int i){}
    }
    class derived extends base{
      derived(){}
    }
    现在要用derived生成对象,但是这个对象在生成时要一个int 的参数,并且不能更改derived类”
    解释如下:
    如果楼主要调用:derived d = new derived(5)是不行的。虽然derived是继承自base,
    base内有base(int i)的构造方法。原因是:构造方法和私有函数是不能被继承的。
    如果非要传递一个参数,你只能更改derived类。
    如:
    class derived extends base{
      derived(){}
      derived(int i){ super( i) }}
      

  7.   

    了解feiyuegaoshan(飞跃) 的意思
    不过有人使用
    base obj = new derived();
    obj.base(5);
    来解决
    试了一下,不能通过。obj根本找不到base(int)这个方法。
    再请大家多讨论一下
      

  8.   

    不就是要生成一个带参数的derived的构造函数吗?
    做一个derived的派生类,如下:
    class DD extends derived
    {
        public DD(int i)
        {
            super.super(i);
        }
    }
    然后使用这个DD构造对象就行了。
      

  9.   

    meteor135(流星雨)的想法的确好
    看来以后还是要多做一些思考
    呵呵
    :)