积极答复者
对类和接口概念的理解困惑?

-
请教各位老师:
本人的基础较差,自学中。。。。
在学习过程中遇到一些基础性的问题,想请教大家:
interface IAnimal
{
void Cry();
}
class Dog:IAnimal
{
public void Cry()
{
Console.WriteLine("dog...");
}
}class Fish:IAnimal
{
public void Cry()
{
Console.WriteLine("Fish...");
}
}
//接口的隐式实现
IAnimal Ia=new Dog();
IAnimal Ian=new Fish();
//这样通过接口就分别实现了类Dog、Fish,可以这样理解吗???
在OOP的原则中,为了体现松耦合的原则,通过实现了该接口的类来使用接口中的方法,这样是不是也体现了多态和可复用\扩展的编程思想???
- 已编辑 午夜流星 2016年12月15日 3:18 内容有错误
问题
答案
-
这个定义interface IAnimal
{
void Dog();
}应该是
interface IAnimal
{
void Cry();
}是体现了松耦合的原则, new Dog或new Fish还可以演化成工厂方法,以更加灵活的方法创建对象。
//IAnimal Ia=new Dog();
//IAnimal Ian=new Fish();
IAnimal Ia=ObjectFactory.Create(Animal.Dog);
IAnimal Ian=ObjectFactory.Create(Animal.Fish);
enum Animal
{
Dog,
Fish
}
这句话“这样通过接口就分别实现了类Dog、Fish”,我觉得说成“Dog,Fish都实现了接口IAnimal”,是类实现接口。
专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
- 已标记为答案 午夜流星 2016年12月15日 3:17
全部回复
-
这个定义interface IAnimal
{
void Dog();
}应该是
interface IAnimal
{
void Cry();
}是体现了松耦合的原则, new Dog或new Fish还可以演化成工厂方法,以更加灵活的方法创建对象。
//IAnimal Ia=new Dog();
//IAnimal Ian=new Fish();
IAnimal Ia=ObjectFactory.Create(Animal.Dog);
IAnimal Ian=ObjectFactory.Create(Animal.Fish);
enum Animal
{
Dog,
Fish
}
这句话“这样通过接口就分别实现了类Dog、Fish”,我觉得说成“Dog,Fish都实现了接口IAnimal”,是类实现接口。
专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
- 已标记为答案 午夜流星 2016年12月15日 3:17