请教c#有参构造函数继承的问题

派生类的构造函数后面的base()里面的参数一定和父类的参数类型一样吗,求帮忙看下,谢谢classA{publicintno;publicA(int_no){this.n... 派生类的构造函数后面的base()里面的参数一定和父类的参数类型一样吗,求帮忙看下,谢谢
class A
{
public int no;
public A(int _no)
{
this.no = _no;
Console.WriteLine("A");
Console.WriteLine(this .no);
}
}
class B : A

{ int no;
string s;
public B(int _no,string _s):base(_no)//就是这个地方,我发现类型不一样就错呢,要是派生类里面没有int型变量怎么办呢
{
this.no = _no;
this.s = _s;
Console.WriteLine(this.s);
}
}
展开
 我来答
曈伊
2011-11-20 · 超过13用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:39.5万
展开全部
class B:A
{
int no;
string s;
public B(string _s):base(_no)
{
no=_no;
s=_s;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老游击队员7
推荐于2018-03-29 · 超过24用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:63.9万
展开全部
注意看父类A的构造方法是带一个参数的int型
所以你baes(no);的时候会根据你no的类型选择父类的构造函数,
如果没有找到匹配类型就报错,
例如:你base(s),s是string类型,而父类里面又没有传string类型为参数的构造函数
,那你可以在父类 重载 一个string类型为参数的构造函数,父类A 就这样写

class A
{
public int no;
public A(int _no)
{
this.no = _no;
Console.WriteLine("A");
Console.WriteLine(this .no);
}
public A(string _no)
{
this.no = _no;
Console.WriteLine("A");
Console.WriteLine(this .no);
}
}
class B : A

{ int no;
string s;
public B(int _no,string _s):base(_s)//这个地方就可以传个string类型了
{
this.no = _no;
this.s = _s;
Console.WriteLine(this.s);
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式