首页 新闻 会员 周边

C# 关于构造函数是继承还是调用的关系

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-30 08:19

1、子类通过base关键字显式继承(暂且说成是继承)父类有参构造函数, 是继承还是调用

2、一个类里面通过this关键字调用(暂且说成是调用)本类的有参构造函数,是继承还是调用

就这两个问题,其实实现的效果是一样的,只是,一个概念问题,怎样表达会好一些

nil的主页 nil | 小虾三级 | 园豆:879
提问于:2011-12-26 21:32
< >
分享
最佳答案
0

调用关系,继承是描述对象关系的,跟对象的方法无关。

收获园豆:5
水牛刀刀 | 大侠五级 |园豆:6350 | 2011-12-27 00:44
其他回答(3)
0

我的理解,this和base点出来的都是调用,继承的概念是子类拥有父类中的开放的成员和方法,是一种表示,而调用,非继承的调用,如使用对象组合,也会用到thisi关键字,而this和base是一种动作,而不是一种拥有的表述方式。

也可以这么说,使用base肯定是调用了父类的成员或者方法

收获园豆:5
diorlv | 园豆:259 (菜鸟二级) | 2011-12-27 09:27

base调用父类中的成员,this调用这个类的对象的成员,对于上面的diorlv的  “继承的概念是子类拥有父类中的开放的成员和方法,”表示不解:那你的意思是继承开放的成员,private的子类就不能拥有了???

支持(0) 反对(0) FuSheng2012 | 园豆:209 (菜鸟二级) | 2012-02-25 16:06
  1. @风筝w: 恩,这句话解释的有点问题,的确可以拥有私有成员变量,但是不能对私有成员变量进行调用和操作,但是引用这个“拥有”的概念,只是想解释楼主继承和调用的关系,呵呵。拥有不完全等价于调用,应该是拥有>调用,这句话应该这样解释,可以调用的必须拥有,但是拥有的不一定可以调用,私有成员是可以拥有的,但是不能调用。
支持(0) 反对(0) diorlv | 园豆:259 (菜鸟二级) | 2012-02-27 16:14
0

同意一楼的答案。子类构造函数中使用base只能说明在创建子类对象是要使用父类的构造函数,并不是继承父类的构造函数。

收获园豆:5
碧落星痕 | 园豆:708 (小虾三级) | 2011-12-27 11:58
0

base调用父类中的成员,this调用这个类的对象的成员,对于上面的diorlv的  “继承的概念是子类拥有父类中的开放的成员和方法,”表示不解:那你的意思是继承开放的成员,private的子类就不能拥有了???

收获园豆:5
FuSheng2012 | 园豆:209 (菜鸟二级) | 2012-02-25 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册