关于针对接口编程的优点
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Animal _dog = new dog();
//_dog.makeSound();
dog _dog = new dog();
_dog.makeSound();
}
}
public interface Animal
{
void makeSound();
}
public class dog : Animal
{
public void makeSound()
{
brak();
}
void brak()
{
Console.Write("this is dog sound.");
Console.Write("1");
Console.Write("2");
Console.Write("3");
Console.Write("4");
Console.Write("5");
}
}
public class cat : Animal
{
public void makeSound()
{
meow();
}
void meow()
{
Console.Write("this is dog cat.");
Console.Write("6");
Console.Write("7");
Console.Write("8");
Console.Write("9");
Console.Write("10");
}
}
}
去掉注释和不去掉注释到底区别在哪?请按此代码进行解释,谢谢。
在本例中,我怎么就看不到优点呢?
[解决办法]
针对接口 这里的接口应该是针对这个animal吧 是父类 而不是interface 接口是广义的概念
[解决办法]
面向接口编程,接口中只有方法声明,而没有具体实现,上面的Animal就相当与一个指针,具体可能指向dog,也可能指向cat,dog和cat就相当于具体的业务,当业务更改时,只需要更改一下指向就可以了,把Animal _dog = new dog();改成Animal _dog = new cat();就相当于更换了业务.这样后期的维护就会很方便,业务改变,重新写一个业务类,把指向更改一下,就行了,其他什么都不要改!
[解决办法]