我可以在父类中有一个“受保护”成员并在子类中继承它吗?
Posted
技术标签:
【中文标题】我可以在父类中有一个“受保护”成员并在子类中继承它吗?【英文标题】:Can I have a 'protected' member in a parent class and inherit it in a child class? 【发布时间】:2017-12-08 08:35:45 【问题描述】:我有admin、customer、supplier 3种用户,都计划继承User
类。我可以在User
类中将protected
用于username
和password
并在子类中继承它们吗?所有教程似乎都使用private
,有什么特殊原因吗?
【问题讨论】:
您应该阅读有关访问修饰符的文档... 你可以。用例取决于您的需求。查看有关修饰符的 C# 教程 “所有教程似乎都使用私有” 我猜您将属性的(支持)字段与属性本身混淆了。属性通常不是私有的,而是字段。 是的。实际上这是保护的唯一目的。 【参考方案1】:我可以在用户类中对用户名和密码使用protected
是的
你是否应该是另一个问题。如果它们是字段,我个人会说:保留字段 private
并添加 protected
property - 或者只是简单地说:
protected string UserName get;set;
或者也许:
protected string UserName get;private set;
如果只有基类能够设置它,或者
protected string UserName get;
如果只有基类应该能够设置它并且只能在构造函数中
旁注:任何关于存储密码(即使是在内存中)的讨论都让我感到紧张。
【讨论】:
鉴于问题的性质,考虑到 OP 可能认为“受保护”意味着密码受到保护:) @HansPassant 不要去那里...拜托 :)以上是关于我可以在父类中有一个“受保护”成员并在子类中继承它吗?的主要内容,如果未能解决你的问题,请参考以下文章