我觉的没必要纠结于概念,如果是考试就说不能继承。
至于有人为什么会这么说我想是因为他认为当你创建子类的实例时父类的private字段也会被创建,所以从这个角度来说却是是被继承了。
鉴于楼上概念性的解释我给点通俗的吧,假设有两个类如下:
public class A
{
string name;
}
public class B:A
{
string name;
}
那么在实例化B的时候是不是只有name一个字段呢,不是的,还有一个A_Name也被实例化了而且也在B中,只不过你B的TypeHandle无法访问它,包括相对应的方法表也是。
明白啦,实质是继承了,只是不能访问,对吧?
你的理解是不对的。参考C#语言规范4.0版第10.3.3节:一个类继承它的直接基类类型的成员。继承意味着一个类隐式地将它的直接基类类型的所有成员当作自已的成员,但基类的实例构造函数、析构函数和静态构造函数除外。
我觉得这两条就是说内存中对象的字段是互相独立的,方法表是公用的。
嗯,第一次看到相应的语言规范,学习了。
哦,明白啦,是访问性的问题,其实是继承了,对吧?
学习了。。。
当然继承了,只不过没有访问权限而已