最近,我遇到了一个与类创建/建模相关的问题。
以动物王国为榜样。使用您的类创建各种对象,表示为虚拟动物园。增加20只动物到这个虚拟动物园(在你的程序的主要方法,让每个动物发出声音。这不应该是20个不同的物种)。
我考虑了这个问题,决定使用抽象类动物,而不是接口。然后我又增加了两类鸟,哺乳动物是由动物继承的。
我的实施
  public abstract class Animal{
      abstract Sound MakeSound();
    }
    public class Bird : Animal
    {
       private Sound _sound;
       public Bird(Sound sound){
       _sound = sound;
    }
    public Sound MakeSound(){
          return _sound;
       }
    }
//same as above with Mammals
public class Program
{
  Animal crow = new Bird("Crow sound");
  Console.WriteLine(crow.MakeSound());
 Animal dog = new Mammal("Dog sound");
  Console.WriteLine(dog.MakeSound());
// and so on with other animals
}我的问题是-
请建议一些关于网上的材料,我可以改进这些问题。谢谢。
发布于 2017-11-25 17:58:21
要使用接口的原因之一是C#不支持多重继承。
总的来说,我想把界面看作是能力或特性,而不是模型。
类似于:
    public interface ISwimable
    {
         int SwimmingSpeed { get; set; }
    }
    public interface IWalkable
    {
        int RunningSpeed { get; set; }
    }现在,如果我有一个生活在水中的动物,我想让它实现ISwimable,如果我有一个可以走路的动物,那么它的类应该实现IWalkable,如果两者都可以,它将实现两者。
https://stackoverflow.com/questions/47488900
复制相似问题