我定义了一个类,如果构造函数为空,那么可以有继承函数
如果构造函数有参数,那么就不能有继承函数。
为什么啊?
错误在哪里?
运行提示 不能什么0个参数的重载。
如果构造函数有参数,那么就不能有继承函数。
为什么啊?
错误在哪里?
运行提示 不能什么0个参数的重载。
解决方案 »
- 用.net的B/S模式,人员关系图像化展示他们之间的关系
- Crystal Reports for Visual Studio 2005 好用吗
- 常量值“65306”无法转换为“char”
- 有人知道用户控件不出现在toolbox里是怎么回事吗?
- 如何将程序、framework、SQLSERVER一起打包?
- 急!!!,有关c# 中调用API函数的问题(msn:franklitian6@hotmail)[分不够在发贴!!]
- c#中有一个简单的地方没看懂
- 怎样形成印刷所用的那种反字?
- 请装了VS.Net2003正式版的朋友进来一下,请问版本号是多少?
- 调用组件?
- 如何设置winform窗体自适应大小 哈哈
- 程序跑起来以后假死,但查看进程,任然在运行
{
public cls1 (int i, string s)
{
}
}public class cls2 : cls1
{
public cls2 ()
{
}
}
由于cls1书写了cls1(int i,string s)构造函数,所以cls1()构造函数就被隐藏了;故,cls2()构造函数找不到可以继承的函数了。
解决方案:在cls1中,显式的声明cls1()构造函数
代码如下:public class cls1
{
public cls1()
{
} public cls1 (int i, string s)
{
}
}public class cls2 : cls1
{
public cls2 ()
{
}
}
定一个了一个空类的时候,编译器其实为你默认实现了好多了函数
其中就包括了默认构造函数(无参)和默认的浅拷贝的实现
但是你显示定义了一个带参构造函数的话,就需要自己再定一个无参构造函数
{
public cls1()
{
} public cls1 (int i, string s)
{
}
}public class cls2 : cls1
{
public cls2 () : base() //在这里我添加一个"base()"调用父类无参数构造函数,这样对用构造函数的调用顺序看的应该清楚点吧
{
}
}
{
static void Main(string[] args)
{
B b = new B(2, 3);
}
}public class A
{
public A()
{
代码...
} public A(int a)
{
代码...
}
}public class B : A
{
public B(int a, int b) : base(a)
{
代码...
}
}这样也是可以的,主要看你想继承父类的哪个构造函数
但是没想到必须要提供不带参数的构造函数No, a default constructor is NOT a must.class A
{
public A(int i){}
}class B : A
{
public B() : base(0) //<---
{
}
}
{
public cls1()
{
} public cls1 (int i, string s)
{
}
}public class cls2 : cls1
{
public cls2()
{
}
public cls2 (int i,int j,int k)
{
}
}
////////////////////////////////////
cls1 myclass1=new cls1(110,"报警");
cls2 myclass2=new cls2(110,119,"火警");