C# 错误:父类不包含接受0个参数的构造函数
最初,我收到一个错误,无法在coffee类“coffee”中命名“\u coffee”,因为成员名称不能与其封闭类型相同。当我将名称更改为_coffee时,我收到一个错误,即“coffeeShop不包含接受0个参数的构造函数”。我已在线找到解决方案,但它们似乎不适用于我的应用程序,也不适用于我的应用程序。请帮忙C# 错误:父类不包含接受0个参数的构造函数,c#,C#,最初,我收到一个错误,无法在coffee类“coffee”中命名“\u coffee”,因为成员名称不能与其封闭类型相同。当我将名称更改为_coffee时,我收到一个错误,即“coffeeShop不包含接受0个参数的构造函数”。我已在线找到解决方案,但它们似乎不适用于我的应用程序,也不适用于我的应用程序。请帮忙 public class coffeeShop { string _size; string _type; public coffeeShop(string si
public class coffeeShop
{
string _size;
string _type;
public coffeeShop(string size, string type)
{
_size = size;
_type = type;
}
public override string ToString()
{
return String.Format("Thanks for ordering: {0}, {1}", _size, _type);
}
}
class Coffee : coffeeShop
{
string _size;
string _type;
string _caffiene;
public virtual void _Coffee( string size, string type, string caffiene)
{
_caffiene = caffiene;
_size = size;
_type = type;
}
public override string ToString()
{
return String.Format("Product Information for: {0} {1} {3}", _size, _type, _caffiene);
}
}
改变
到
或者加上
public coffeeShop()
{
}
它将在基类中定义一个无参数构造函数
请注意,您正在重新定义大小和类型,将构造函数更改为
public Coffee(string size, string type, string caffiene)
: base(size, type)
{
_caffiene = caffiene;
}
从Coffee
类中删除\u size
和\u type
,并在基类(coffeeShop
)中将其声明为受保护的)更改
public virtual void _Coffee( string size, string type, string caffiene)
{
_caffiene = caffiene;
_size = size;
_type = type;
}
到
或者加上
public coffeeShop()
{
}
它将在基类中定义一个无参数构造函数
请注意,您正在重新定义大小和类型,将构造函数更改为
public Coffee(string size, string type, string caffiene)
: base(size, type)
{
_caffiene = caffiene;
}
从Coffee
类中删除\u size
和\u type
,并在基类(coffeeShop
)中将它们声明为受保护的
)如果在您的类型中未定义构造函数,C编译器将发出默认(无参数)构造函数。这就是它试图为您的Coffee类所做的(默认情况下,它在基类中寻找一个无参数的构造函数来调用),但是您的基类(coffeeShop)只定义了一个接受2个参数的构造函数
因此,任何子类都需要通过base
关键字显式调用此构造函数:
public Coffee(string size, string type, string caffiene) : base(size, type)
{
_caffiene = caffiene;
}
如果您的类型中没有定义构造函数,C#编译器将发出一个默认(无参数)构造函数。这就是它试图为您的Coffee类所做的(默认情况下,它在基类中寻找一个无参数的构造函数来调用),但是您的基类(coffeeShop)只定义了一个接受2个参数的构造函数
因此,任何子类都需要通过base
关键字显式调用此构造函数:
public Coffee(string size, string type, string caffiene) : base(size, type)
{
_caffiene = caffiene;
}
写这个:public Coffee(字符串大小、字符串类型、字符串类型):base(大小、类型){{u caffine=caffine;}
应该注意的是,这种继承层次结构没有多大意义。咖啡馆不是咖啡馆。你的班级等级制度毫无意义。你应该使用继承来表示“是”关系,但咖啡不是咖啡店的类型。这种关系更像是“有”,即咖啡店有咖啡。您可以通过将coffeeShop类中的coffee作为字段/属性来表示这一点。编写以下内容:public coffee(字符串大小、字符串类型、字符串类型):base(大小、类型){{u caffine=caffine;}
应该注意,这种继承层次结构没有多大意义。咖啡馆不是咖啡馆。你的班级等级制度毫无意义。您应该为“是a”关系使用继承,但咖啡不是咖啡店的一种类型。这种关系更像是“有”,即咖啡店有咖啡。通过将coffeeShop类中的coffee作为字段/属性来表示这一点。哇,从虚拟方法is wired调用基构造函数。哇,从虚拟方法is wired调用基构造函数。