[英]protected data members
为什么应将“数据成员”声明为“受保护”?可能有什么好处?
子类可以访问受保护的成员,如果您将它们声明为私有,则情况并非如此。
您声明事物是私有的或受保护以隐藏它们,以便仅公开本应由外部世界使用的相关事物。
如果您想知道为什么要向外界隐藏成员,则应该获得一本有关面向对象的程序设计的书,因为这些是基本概念。
protected
只是意味着子类能够看到该成员,但是该成员不是该对象的公共API的一部分。
再问一个问题; 这取决于您所说的“数据成员”的含义。 如果您是指字段,那么IMO就不应该 。 如果子类需要该信息(特别是方法),则使某些状态(属性) protected
是很常见的,但对于外界而言则不必要。
但是,一个更好的例子是protected virtual
,继承者可以更改其他(对外界)私有成员的实现。 典型的例子是:
protected virtual OnSomeMemberChanging(...) {}
protected virtual OnSomeMemberChanged(...) {}
现在,继承者现在可以通过使用override
来更改实现(通常但并非总是在某些时候调用base.Whatever()
来调用原始实现base.Whatever()
,从而对更改或更改键值进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.