1.结论:构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们;
2.下面的程序用来验证子类对象中存在父类中定义的私有成员
class Program
{
static void Main(string[] args)
{
Son son = new Son();//本例中,只实例化了一个子类对象
son.SonFunc();
}
}
/// <summary>
/// 父类
/// </summary>
class Father
{
private int m_age = 0;//父类私有成员
protected void FatherFunc(Son son)
{
this.m_age = 30;//1.this 可访问私有成员
//判断子类对象son 与 当前对象this 引用是否相同
//经验证,引用相同 => 2.子类对象中拥有私有成员
bool IsReferenceEquals = object.ReferenceEquals(son, this);
}
}
/// <summary>
/// 子类
/// </summary>
class Son : Father
{
public void SonFunc()
{
base.FatherFunc(this);//调用父类方法,将子类对象传进去
}
}
其他可参照:https://blog.csdn.net/qq_34343303/article/details/81612940