我有以下关于野生动物园的代码:
public class Bird
{
  public void virtual Exercise()
  {
     some logic here
  }
  public void virtual Feed()
  {
     Exercise();
     some logic here
  }
}
public class Penguin : Bird
{
  public void override Exercise()
  {
     base.Exercise();
     some logic here
  }
  public void override Feed()
  {
     Exercise();
     base.Feed();
     some logic here
  }
}
所以每次喂鸟时也必须锻炼。然而,一只鸟可以在不喂食的情况下锻炼。
企鹅是一种特殊的鸟类,需要鸟类运动和一些特定的企鹅运动。喂企鹅需要喂鸟以及一些额外的企鹅要求。
我在这段代码中遇到的问题是,当调用 Feed 时,它会进行两次鸟类运动。企鹅会很累的。
我怎样才能改进代码,以便在企鹅喂食时,每次喂食只对鸟和企鹅进行一次锻炼?