我经常看到人们使用这个代码,如
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();
有什么好处??
感谢
答案 0 :(得分:0)
anAnimal
分配IAnimal
的不同实现,则必须这样做。anAnimal
的代码不是Cat
特定的,那么这可能是让代码更通用和可重用的好主意。