【问题标题】:Inheritance , changes only in one child继承,只改变一个孩子
【发布时间】:2017-07-13 12:50:36
【问题描述】:
public List<string> clnc_EyeDR = new List<string>() 
                { "DR.David Rogers", "DR.Bill Loue", "DR.Jack Gersh" };
public List<string> clnc_E_Date = new List<string>() 
                { "Mon", "Wed", "Fri"}; 
public List<string> clnc_E_Time = new List<string>() 
                { "10:00-14:00", "14:00-18:00", "18:00-22:00"}; 
public List<string> clnc_E_Fee = new List<string>() 
                { "50", "55", "45" };  
public List<int> clnc_E_Available = new List<int>() 
                { 30, 20, 25 };

我在父亲的班级中有这个列表!现在我有管理班级,这是一个孩子班级!此类可以在这些列表中添加和删除医生!患者看不到这些变化!:(

我是初学者,我已经学会了在 C# 中使用控制台应用程序,但是我们在这堂课中学习了一些关于 OOP 的基础知识!对于最终项目,我们必须编写有关诊所的代码,并且必须使用继承!现在我的问题是: 首先,我以父亲的身份上了一堂课,然后作为孩子上了 3 堂课。我将父亲类中的一些列表定义为医生列表。我还定义了一个函数来将一些医生添加到医生列表中!并在子类中调用此函数!这种变化出现在这个子类中,但它没有出现在其他子类中?为什么以及我应该怎么做?那是因为我没有在子类中调用这个函数吗?

【问题讨论】:

  • 显示你的代码,你尝试了什么。
  • 是的,没有代码,没有帮助
  • 如何在此处附加我的代码?
  • @SaraTajbakhsh 只需将其复制并粘贴到问题中即可。还有一个按钮可以为您设置格式(基本上每一行都必须以至少 4 个空格开头)

标签: c# inheritance add


【解决方案1】:

但它没有出现在其他子类中?

因为每个人都从父级继承了自己的对象。想象一下,你有 3 个孩子,他们继承了你的头发。现在你给第一个孩子剪头发,为什么其他孩子的发型会改变? ;)

每个孩子都继承了自己的一组属性,这些属性完全属于孩子!他们是独立的。

继承并不意味着在创建子对象时创建父对象的真实对象,而是意味着子对象将具有父对象定义的所有属性,但它们将属于子对象。孩子们不分享物品

【讨论】:

  • 对!让我拍张照片发到这里!
  • @SaraTajbakhsh 我不需要任何家庭照片;)。为什么要更改其他子项中的列表?
  • 很有趣,但我有管理课程,这个课程可以添加一些更改,例如将医生添加到此列表中,然后我需要向患者展示此内容!
  • @SaraTajbakhsh 那么继承并不是真正正确的方法。想象一下现实世界,如何让病人看医生?而不是随身携带自己的医生名单...
  • @SaraTajbakhsh 请关注this Link 并将您的代码复制到编辑窗口中。它将允许您更改当前的帖子。不要忘记保存更改;)
【解决方案2】:

除非成员(如您的列表)是 static,否则对它的更改不会出现在您班级的所有实例中,或者更准确地说:创建成员 static 是访问通过其任何实例属于某个类(而不是该类的实例)的成员。

当您实例化一个类时,您对其成员所做的修改(无论它们是从基类继承的,还是在派生类中定义的)都不会反映在该类的其他实例中。

【讨论】:

  • 实际上该列表是公开的,因为我需要在所有课程中使用该列表!
  • public 是访问修饰符。它与static 不同。 static 成员可以是publicpublic 成员不必是 static。他们是独立的。
  • 你的意思是我必须为这个列表使用公共静态?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 2020-07-02
  • 2022-11-03
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
  • 2017-12-09
相关资源
最近更新 更多