何时使用Interface variable = new class variable OOP

时间:2014-02-20 08:55:11

标签: c# oop

我经常看到人们使用这个代码,如

interface IAnimal 
{
    void die();
}

class Cat : IAnimal 
{
    void die() { ... }
    void meow() { ... }
}

IAnimal anAnimal = new Cat();
Cat aCat= new Cat();

C#肯定知道anAnimal.die()有效,因为die()是在IAnimal中定义的。但它不会让你做anAnimal.meow(),即使它是一个Cat,而aCat可以调用这两种方法。

告诉我为什么&什么时候我们应该写这种代码

IAnimal anAnimal = new Cat();

有什么好处??

感谢

1 个答案:

答案 0 :(得分:0)

  1. 如果还可以为anAnimal分配IAnimal的不同实现,则必须这样做。
  2. 如果使用anAnimal的代码不是Cat特定的,那么这可能是让代码更通用和可重用的好主意。