Pet*_*etr 57 c# inheritance private
刚看到一个教程说:
Class Dog
{
private string Name;
}
Class SuperDog:Dog
{
private string Mood;
}
Run Code Online (Sandbox Code Playgroud)
然后有一个UML显示SuperDog也会继承Name.我试过但似乎只有公共成员才能继承.至少我无法访问Name,除非它被声明为public.
Mar*_*Eve 103
派生类可以访问基类的public,protected,internal和protected内部成员.即使派生类继承了基类的私有成员,它也无法访问这些成员.但是,所有这些私有成员仍然存在于派生类中,并且可以执行与基类本身相同的工作.例如,假设受保护的基类方法访问私有字段.该字段必须存在于派生类中,以便继承的基类方法正常工作.
来自:http://msdn.microsoft.com/en-us/library/ms173149.aspx
所以,从技术上讲,是的,但实际上,没有.
thi*_*eek 47
基类中的所有内容都继承到派生类.如果您需要在派生类中访问它们,请将成员标记为受保护,那么标记为private的成员将无法访问派生类以实现完整性.
在继承的上下文中有各种级别的成员可访问性.
public:基类的所有公共成员都可以在派生类和派生类的实例中访问.
protected:基类的所有受保护成员都可以在派生类中访问,而不是派生类的实例.
protected internal:基类的所有受保护的内部成员都可以在派生类和同一程序集中创建的派生类的实例中访问.
internal:基类的所有内部成员都可以在派生类中访问,也可以在同一程序集中的derived-class实例中访问.
private:在派生类和派生类的实例中,不能访问基类的私有成员.
不,他们不是。
修饰符protected可以使字段可供派生类使用,但从维护的角度来看,这通常被认为是一个坏主意。您想改用受保护的属性。