C# 派生类通过base关键字显式调用基类的有参构造函数其意义何在————————————————————

时间:2022-09-08 00:17:53
如果基类的有参构造函数只是用来初始化本类内的私有字段,那么在派生类中通过base关键字显式调用基类的有参构造函数,虽然能初始化基类的私有字段,但派生类中又不可访问,这样做有什么意义呢???



C# 派生类通过base关键字显式调用基类的有参构造函数其意义何在————————————————————

6 个解决方案

#1


引用 楼主 syncsdn10 的回复:
基类的有参构造函数只是用来初始化本类内的私有字段

哈?
想干啥就能干啥好不

比如这样,使用者能调用GetJ,你不初始化怎么行呢?
class Base
{
    int _j;
    public Base(int j) { _j = j; }
    public int GetJ() { return 1f /_j; }
}

#2


比如说你的基类没有无参数公共构造函数,那么派生类如果不指定调用基类构造函数,编译都编译不了。

#3


该回复于2016-03-28 00:05:14被版主删除

#4


用户构造函数传参和调用指定参数的构造函数

#5


封装字段!避免字段被随意更改!

#6


封装公用部分,可扩展不可修改......

#1


引用 楼主 syncsdn10 的回复:
基类的有参构造函数只是用来初始化本类内的私有字段

哈?
想干啥就能干啥好不

比如这样,使用者能调用GetJ,你不初始化怎么行呢?
class Base
{
    int _j;
    public Base(int j) { _j = j; }
    public int GetJ() { return 1f /_j; }
}

#2


比如说你的基类没有无参数公共构造函数,那么派生类如果不指定调用基类构造函数,编译都编译不了。

#3


该回复于2016-03-28 00:05:14被版主删除

#4


用户构造函数传参和调用指定参数的构造函数

#5


封装字段!避免字段被随意更改!

#6


封装公用部分,可扩展不可修改......