请教个 as3 继承的基本问题

//---父类----package{publicclassA{publicfunctionA(n:int){trace("A:"+n);}}}//-----子类----... //---父类----
package {
public class A{
public function A(n:int) {
trace("A:"+n);
}
}
}
//-----子类-------
package {
public class B extends A{
public function B(n:int) {
trace("B:"+n);
}
}
}

我在实例化B类的时候报错:基底类别 A 中找不到预设的建构函式。

如果把A类的构造函数中的参数去掉就没问题

基本功不扎实,请教为什么会报错
如果我希望A类也能传参实例化该怎么做?
展开
 我来答
kiddy_520
2012-07-11 · 超过24用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:46.2万
展开全部
因为在实例化对象B时,父类A找不到构造函数(找不到与之对应的构造函数)。。。在B类中没写父类构造的方式,就默认为无参构造函数,也就相当于B在自己内部加了一条super(); 而你的A类中的没有无参构造函数,所以就报错了。你说把A中的构造方法的参数去掉,B自动调用super();刚好是无参构造方法。所以就可以了
应该写成:
//-----子类-------
package {
public class B extends A{
public function B(n:int) {
super(n);
trace("B:"+n);
}
}
}
a464232165
2012-07-11
知道答主
回答量:19
采纳率:0%
帮助的人:8万
展开全部
你导入了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式