请教“父类中无参构造方法究竟写不写?”! 请问各位高手:父类中究竟写不写那个无参的构造方法呢?我也曾请教过他人,他们的回答说:“假如父类中你没有定义构造方法,它会默认一个无参的构造方法,但是假如你在父类中定义了一个有参的构造方法后,也必须去定义一个无参的构造方法。因为在子类中实例化的时候调用了父类的无参构造方法,但是在父类中却没有这个无参的构造方法”,我有点懂,但似乎又不懂,有点晕,哪位大哥能详细清楚、简单易懂的解释一下啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 amandag 于 2010-06-16 12:46:23 编辑 假如你在父类中定义了一个有参的构造方法后,也必须去定义一个无参的构造方法(假如子类要有无参的构造函数)。这句话很明白。public class a{public a(string a)//如果子类也就是b如果有无参的构造函数.a就要加一个{}///a就要加一个这个无参构造函数。public a(){}///}public class a:b{} MSDN的说法是:如果需要公共默认构造函数,请在类中进行显式声明。如果类支持默认构造函数,则显式定义默认构造函数是最佳做法。尽管某些编译器会自动向类中添加默认构造函数,但显式添加默认构造函数会使代码更易于维护。即使由于您添加了带参数的构造函数,导致编译器停止发出默认构造函数,这样也可确保定义默认构造函数。 如果你没有定义自己的构造函数,那么编译器会帮你生成默认的构造函数。如果你定义了一个有参数的构造函数,那么这个默认的构造函数就不会被自动添加了,这个时候,如果你希望子类调用父类的无参数构造函数,就必须显示声明了。 如果类没有构造函数,将自动生成一个默认的无参数构造函数,并使用默认值初始化对象字段类构造函数也可通过关键字 this 调用同一个类的另一个构造函数自定义构造函数,就要写参构造函数 double aa = Convert.ToDouble("1*20")会出错应该怎么改System.FormatException: 输入字符串的格式不正 在winform中怎么绘制一个渐变的而且是透明渐变的一张图片呀。 C#新手 Socket Receive中创建的Buffer最大能设为多大 该自动编号如何实现? 怎么将数据集DATASET一此性插入一个表 问大家一个问题那。 如何在C#中启动一个外部程序? 如何让Button执行完毕后,再执行另外一些代码 在ASP.NET中如何使用SESSION? AxWebBrowser和WebBrowser的区别?? C/S模式上传图片是报错 基础连接已经关闭: 服务器提交了协议冲突。
{
public a(string a)//如果子类也就是b如果有无参的构造函数.a就要加一个
{}///a就要加一个这个无参构造函数。
public a()
{}///
}public class a:b
{}
如果需要公共默认构造函数,请在类中进行显式声明。
如果类支持默认构造函数,则显式定义默认构造函数是最佳做法。尽管某些编译器会自动向类中添加默认构造函数,但显式添加默认构造函数会使代码更易于维护。即使由于您添加了带参数的构造函数,导致编译器停止发出默认构造函数,这样也可确保定义默认构造函数。
如果你没有定义自己的构造函数,那么编译器会帮你生成默认的构造函数。如果你定义了一个有参数的构造函数,那么这个默认的构造函数就不会被自动添加了,这个时候,如果你希望子类调用父类的无参数构造函数,就必须显示声明了。
类构造函数也可通过关键字 this 调用同一个类的另一个构造函数
自定义构造函数,就要写参构造函数