C#子类用了父类的属性后,父类就不能用自己的属性。
以下代码可以执行但是把注释的代码用上后就出错了,也就是子类继续了父类的属性后,父类自己的属性就用不上了是哪里出错了?C#还真难学啊不过兴趣得是挺好玩的staticvoid...
以下代码可以执行 但是把注释的代码用上后就出错了,也就是子类继续了父类的属性后,父类自己的属性就用不上了 是哪里出错了?C#还真难学啊 不过兴趣得是 挺好玩的
static void Main(string[] args)
{
// fu x1 = new fu( "是啊");
//x1.MYxinxi();
zi d1 = new zi("Tom","妓术学院");
d1.Myxinxi();
Console.Read();
}
class fu
{
public string name;
public void MYxinxi()
{
Console.WriteLine(name);
}
//public fu(string n)
//{
// name = n;
//}
}
class zi : fu
{
string xueyuan;
public void Myxinxi()
{
Console.WriteLine("我叫{0}我读{1}",name,xueyuan);
}
public zi(string n,string x)
{
name = n;
xueyuan = x;
}
} 展开
static void Main(string[] args)
{
// fu x1 = new fu( "是啊");
//x1.MYxinxi();
zi d1 = new zi("Tom","妓术学院");
d1.Myxinxi();
Console.Read();
}
class fu
{
public string name;
public void MYxinxi()
{
Console.WriteLine(name);
}
//public fu(string n)
//{
// name = n;
//}
}
class zi : fu
{
string xueyuan;
public void Myxinxi()
{
Console.WriteLine("我叫{0}我读{1}",name,xueyuan);
}
public zi(string n,string x)
{
name = n;
xueyuan = x;
}
} 展开
5个回答
展开全部
//public fu(string n)
//{
// name = n;
//}
父类 的构造函数 不能注释掉
fu x1 = new fu( "是啊");
x1.MYxinxi();
这样才行啊
//{
// name = n;
//}
父类 的构造函数 不能注释掉
fu x1 = new fu( "是啊");
x1.MYxinxi();
这样才行啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面的回答已经很明白了,这是由于子类继承父类时,子类实例化的时候,要先调用父类的构造函数先将父亲先实例化。你子类的构造函数当中,没有显示调用父类的构造函数,此时编译器会默认的调用父类的无参构造函数,但你在父类当中,已经定义了包含一个参数的构造函数,那么编译器就不会自动生成一个无参构造函数让你调用,这时就要出错了。
改动方法:
1、前面已经说了,显示调用父类的构造函数
public zi(string n, string x):base(n)
{
name = n;
xueyuan = x;
}
2、在父类当中增加一个无参构造函数
public fu()
{
name = "自动";
}
这个问题涉及到的知识点:
A、类在实例化时,如果不存在构造函数,编译器为会其默认生成一个无参的构造函数,但只要声明的构造函数,那么编译器就不会自动再生成无参构造函数了。
B、子类实例化时,要先实例化父类
改动方法:
1、前面已经说了,显示调用父类的构造函数
public zi(string n, string x):base(n)
{
name = n;
xueyuan = x;
}
2、在父类当中增加一个无参构造函数
public fu()
{
name = "自动";
}
这个问题涉及到的知识点:
A、类在实例化时,如果不存在构造函数,编译器为会其默认生成一个无参的构造函数,但只要声明的构造函数,那么编译器就不会自动再生成无参构造函数了。
B、子类实例化时,要先实例化父类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class Program
{
static void Main(string[] args)
{
zi d1 = new zi("Tom", "技术学院");
d1.Myxinxi();
Console.Read();
}
}
class fu
{
public string name;
public void MYxinxi()
{
Console.WriteLine(name);
}
public fu(string n)
{
name = n;
}
}
class zi : fu
{
string xueyuan;
public void Myxinxi()
{
Console.WriteLine("我叫{0}我读{1}", name, xueyuan);
}
public zi(string n, string x)
: base(n)
{
xueyuan = x;
}
}
{
static void Main(string[] args)
{
zi d1 = new zi("Tom", "技术学院");
d1.Myxinxi();
Console.Read();
}
}
class fu
{
public string name;
public void MYxinxi()
{
Console.WriteLine(name);
}
public fu(string n)
{
name = n;
}
}
class zi : fu
{
string xueyuan;
public void Myxinxi()
{
Console.WriteLine("我叫{0}我读{1}", name, xueyuan);
}
public zi(string n, string x)
: base(n)
{
xueyuan = x;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-01
展开全部
会有什么错呢。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询