A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 维纳斯之叶 中级黑马   /  2012-9-24 18:22  /  1373 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 维纳斯之叶 于 2012-11-17 08:25 编辑

如果在一个类中显示的写一个构造函数,那类中默认的构造函数去哪了??是被垃圾回收器回收了么??
如果子类继承父类的构造函数,那子类中默认的构造函数还存在么?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

正序浏览
默认情况下,类的默认构造函数都是不带参数的,且函数体为空。
如果你写了一个不带参数的构造函数,默认的构造函数就被替换成你写的那个;
如果你写了一个带参数的构造函数,那么那个不带参数的构造函数依然存在,只是隐式的,当声明一个不带参数的对象时就会自动调用这个不带参数的。

当一个类继承另一个类的时候,父类的构造函数也会被继承,同时子类的构造函数也存在。
在进行实例化一个子类对象的时候,实例化的顺序是:字段变量——>父类构造函数——>子类构造函数
回复 使用道具 举报
在默认情况下(也就是在类的定义中并没有明确写出构造函数的实现)C#将创建一个构造函数,该构造函数自动实例化对象,将对象的成员变量设置为其成员变量类型的默认值。自己写了构造函数,默认的就是自己写的了,自动创建的那个无参数构造函数不用管它。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
在类中写个构造函数,类默认的构造函数就是你写的那个

只有在你没有写构造函数的时候,才会有默认的构造函数,一旦写了,默认的就是你写的那个

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马