C#基类与派生类问题

[复制链接]
查看11 | 回复1 | 2010-9-21 00:26:45 | 显示全部楼层 |阅读模式
基类的默认构造函数是带参数的,派生类里面没有自己写的构造函数。编译时显示:“基类”不包含采用0个参数的构造函数,请问是什么意思啊?怎么改?
部分代码
基类是在DLL里面引用过来的
class Lion : Animal,ICarbivore

{

int _weight;



public override int getID()

{

return base.id;

}
//.....
后面那个事接口 不管他。
static void Main(string[] args)

{



//狮子

Lion lion = new Lion();
.
//......
编译提示:错误 1 “myBase.Animal”不包含采用“0”个参数的构造函数 F:\程序\homework\homework\Program.cs 9 11 homework
菜鸟求教,什么意思啊?怎么给基类的构造函数赋值啊?痛苦中。。。。

回复

使用道具 举报

千问 | 2010-9-21 00:26:45 | 显示全部楼层
构造派生类的时候,先要调用基类的构造函数。一般情况下,如果基类有默认构造函数(即不带参数的构造函数),那么派生类没在显式调用基类构造函数时,会自动调用基类的默认构造函数。你的情况中,基类的构造函数都是带参数的,也就是说,基类没有构造函数,那么派生类就无法自动调用基类的构造函数,需要你在派生类的构造函数申明时显式调用。比如class Supper {
public Supper(int n) {}}class Sub : Supper {
// 显式调用基类构造函数并将参数传递过去
public Sub(int n):base(n) {}
// 显式调用基类构造函数并给予一个默认参数
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行