class base{
base(){}
base(int i){}
}
class derived extends base{
derived(){}
}
现在要用derived生成对象,但是这个对象在生成时要一个int 的参数,并且不能更改derived类
base(){}
base(int i){}
}
class derived extends base{
derived(){}
}
现在要用derived生成对象,但是这个对象在生成时要一个int 的参数,并且不能更改derived类
base a = new derived(5);
好像不可以吧
a.(5);
base a =(base) new derived();
a.(5);
base(int i)是构造函数,不是成员函数
obj.base(5);
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) }}
不过有人使用
base obj = new derived();
obj.base(5);
来解决
试了一下,不能通过。obj根本找不到base(int)这个方法。
再请大家多讨论一下
做一个derived的派生类,如下:
class DD extends derived
{
public DD(int i)
{
super.super(i);
}
}
然后使用这个DD构造对象就行了。
看来以后还是要多做一些思考
呵呵
:)