请教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);
}
} 展开
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);
}
} 展开
2个回答
展开全部
class B:A
{
int no;
string s;
public B(string _s):base(_no)
{
no=_no;
s=_s;
}
}
{
int no;
string s;
public B(string _s):base(_no)
{
no=_no;
s=_s;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注意看父类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);
}
}
所以你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);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询