关于C#接口的理解始终模棱两可???

.Net技术 码拜 9年前 (2015-05-10) 846次浏览 0个评论

网上看了好多,还是理解不了,举个例子希望大家讨论下。
public interface Ianimal
{
        void Move();
}

public class Fish:Ianimal
{
      public void Move()
         {
                    Console.Writeline(“我是靠游泳!”);
         }
}

public class Bird:Ianimal
{
      public void Move()
         {
                    Console.Writeline(“我是靠飞翔!”);
         }
}

看到这里,接口到底有什么用呢?如果不用接口,就定义两个类,代码不是还少些吗?目前我个人对接口的理解是:假如我想要用某个功能,先去接口上看下定义了哪些方法,这样方便调用那些类,便于管理。
现在请各位说说自己的见解,实在理解不了。

5分
接口就是定义规范
比如你的Ianimal,就是定义了Move的规范
这样当某个地方需要具体的animal时,比如你的鱼,比如你的鸟,那只要传入接口即可

void StartMove(Ianimal animal)
{
}

否则,你要提供N个方法分别来接收鱼和鸟

2分
要用好接口,就需要知道继承和多态在设计中的作用。
引用 1 楼 starfd 的回复:

接口就是定义规范
比如你的Ianimal,就是定义了Move的规范
这样当某个地方需要具体的animal时,比如你的鱼,比如你的鸟,那只要传入接口即可

void StartMove(Ianimal animal)
{
}

否则,你要提供N个方法分别来接收鱼和鸟

有道理

3分
引用 1 楼 starfd 的回复:

接口就是定义规范
比如你的Ianimal,就是定义了Move的规范
这样当某个地方需要具体的animal时,比如你的鱼,比如你的鸟,那只要传入接口即可

void StartMove(Ianimal animal)
{
}

否则,你要提供N个方法分别来接收鱼和鸟

调用的漂亮!

引用 1 楼 starfd 的回复:

接口就是定义规范
比如你的Ianimal,就是定义了Move的规范
这样当某个地方需要具体的animal时,比如你的鱼,比如你的鸟,那只要传入接口即可

void StartMove(Ianimal animal)
{
}

否则,你要提供N个方法分别来接收鱼和鸟

刚刚又想了下,你说直接将鱼或则鸟传进去,不还是要先实例化鱼和鸟的对象,那我干嘛不直接在starMove()里面实例化鱼和鸟的对象再调用方法呢

引用 5 楼 wl_1991 的回复:
Quote: 引用 1 楼 starfd 的回复:

接口就是定义规范
比如你的Ianimal,就是定义了Move的规范
这样当某个地方需要具体的animal时,比如你的鱼,比如你的鸟,那只要传入接口即可

void StartMove(Ianimal animal)
{
}

否则,你要提供N个方法分别来接收鱼和鸟

刚刚又想了下,你说直接将鱼或则鸟传进去,不还是要先实例化鱼和鸟的对象,那我干嘛不直接在starMove()里面实例化鱼和鸟的对象再调用方法呢

对哦,这样不用在每个方法里面再次实例化了!

5分
接口只是作为对象与对象间沟通的桥梁,并无特定的意义

就好比只要懂英文,你就可以在英语圈中混,并不需要管对方是美国人还是日本人。在这里,英语就是接口

5分
一个乞丐去要饭,拿出一个碗,这就是接口, 人家往里面放食物就行.
而不同的食物就是实现了这个接口(能够放到碗里)的具体类.
乞丐大概不会拿出几个不同的碗, 一个专门放汤, 一个专门放饭, 一个专门放菜,等等.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于C#接口的理解始终模棱两可???
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!