我有以下关于野生动物园的代码:
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 时,它会进行两次鸟类运动。企鹅会很累的。
我怎样才能改进代码,以便在企鹅喂食时,每次喂食只对鸟和企鹅进行一次锻炼?