继承的问题——构造函数
namespace ConsoleApplication15
{
class Program
{
static void Main(string[] args)
{
Derived q = new Derived('M');
q.print();
}
}
class BaseClass
{
protected char s;
public BaseClass(char c)
{
s = c;
}
}
class Derived : BaseClass
{
public Derived(char q)
{ s = ++q; }
public void print()
{
Console.WriteLine(s);
}
}
}
最后结果要求是N,报错说:错误 1 “ConsoleApplication15.BaseClass”不包含采用“0”个参数的构造函数
------解决方案--------------------class BaseClass { protected char s; public BaseClass(char c) { s = c; } }
将这个修改为
class BaseClass {
protected char s;
public BaseClass()
{
}
public BaseClass(char c)
{
s = c;
}
}
这样就没有问题了。
------解决方案--------------------public Derived(char q) : base(++q){}
------解决方案--------------------继承你就要把上面的构造函数也继承下来,就是在你继承的函数里面也写一个构造函数,把上面函数的参数也继承下来就行了!