为了账号安全,请及时绑定邮箱和手机立即绑定

c#封装教学第四章4-5内容求解

c#

不是说显示定义了构造方法,就没有默认的构造方法吗(这个默认的应该是无参吧)?为什么视频里22秒即有有参构造方法,也有无参构造方法,还不报错呢?

正在回答

4 回答

默认的构造方法是无参的,一旦你定义了一个构造方法(不管是有参还是无参的)默认的构造方法就没了

2 回复 有任何疑惑可以回复我~
#1

shurima阿慕慕 提问者

非常感谢!
2017-03-02 回复 有任何疑惑可以回复我~
#2

shurima阿慕慕 提问者

谢谢。但是你看从4-2开始就有这个问题:child类中已经定义了显示的有参和无参构造函数,而program.cs中的Child child=new Child();下面却不再显示红色波浪线,这与4-1中的讲解不同。这和你的答案(也就是4-1的讲解)相矛盾。而且4-2中是没错的,我认为4-1中出了问题,否则无法解释。
2017-03-03 回复 有任何疑惑可以回复我~
#3

shurima阿慕慕 提问者

而且4-3中老师针对报错的讲解有这么一句:child类中没有定义无参构造(分别有2个带参),所以报错(也就是说因为没定义才报错的,定义就不会了)。姑且只能理解4-1有代码影响,要不然解释不通了。
2017-03-03 回复 有任何疑惑可以回复我~
#4

欣欣xin4228659 回复 shurima阿慕慕 提问者

因为看不到老师的完整代码,所以我猜测,可能老师们在写代码的时候为了方便能够使用对象初始化器,所以在定义了有参构造方法后会下意识的添加一个无参构造,
2017-04-13 回复 有任何疑惑可以回复我~
查看1条回复

我认为视频中写出来的无参构造方法,虽然和默认的无参构造方法一样,但是不能直接说它就是那个默认的无参构造方法。你无参、有参构造方法只要不写就存在一个默认的无参构造方法;一写,就自动认为默认的构造方法没了。

0 回复 有任何疑惑可以回复我~

什么叫无参
什么叫有参

0 回复 有任何疑惑可以回复我~
#1

慕的地5056956

就是你构造方法时候是否定义了参数,例如无参就是public Child(),而有参是public Child(int a,int b),如果你一开始就没定义参数的话,系统默认你是无参的形式。
2022-02-28 回复 有任何疑惑可以回复我~

自问自答:有参构造和无参构造可以共同存在,只要分别定义,就可以不产生矛盾了对吗?

0 回复 有任何疑惑可以回复我~
#1

欣欣xin4228659

是的。
2017-04-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
用C#实现封装
  • 参与学习       78012    人
  • 解答问题       182    个

C#视频教程教大家,用C#语言实现面向对象的封装

进入课程

c#封装教学第四章4-5内容求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信