接口,其实是指类之间约定的协议,可以包含方法、属性、事件和索引

接口成员不允许使用访问修饰符号(public、private、protected、internal),所有的接口成员都是公共的。

接口用于描述一系列类的公共方法/公共属性,它不实现任何的方法或属性,只是告诉继承它的类们至少要实现那些功能。

接口的实际意义在于利用接口的多态性来更好增加代码的面向对象的特性。接口可以用来创建一系列相互关联或者相互依赖的对象,而不需要指定它们的实体。因此可以用来封装一些彼此具有一部分关联的对象实体,来交付给主程序使用。这种想法就叫做面向接口的编程思想。

using System;
using System.Collections.Generic; namespace Test
{
public interface IMoveable
{
void WindBlow();
}
public class Tree : IMoveable
{
public void WindBlow()
{
Console.WriteLine("tree float");
}
}
public class Grass : IMoveable
{
public void WindBlow()
{
Console.WriteLine("grass wave");
}
}
public class WindPass
{
public WindPass(IMoveable canMove)
{
canMove.WindBlow(); }
}
class Program
{
static void Main(string[] args)
{
Tree T = new Tree();
WindPass WP = new WindPass(T);
IMoveable G = new Grass();
WindPass WP_ = new WindPass(G);
}
}
}

关于接口(Interface)的更多相关文章

  1. java中的接口interface

    关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 类似与class,interface ...

  2. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  3. 14 接口-interface的定义与实现

    接口的基本语法一: 1.使用interface 定义 2.接口当中的方法都是抽象方法 3.接口当中的方法都是public权限 接口的定义: interface USB { public void re ...

  4. C#编程利器之三:接口(Interface)【转】

    C#编程利器之三:接口(Interface) C#接口是一个让很多初学者容易迷糊的东西,用起来好象很简单,定义接口,然后在里面定义方法,通过继承与他的子类来完成具体的实现.但没有真正认识接口的作用的时 ...

  5. 为什么不能把委托(delegate)放在一个接口(interface)当中?

    stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...

  6. java之接口interface

    接口 1.多个无关的类可以实现同一个接口 2.一个类可以实现多个无关的接口 3.与继承关系类似,接口与实现类之间存在多态性 4.定义java类的语法格式 < modifier> class ...

  7. 【Java 基础篇】【第六课】接口interface

    Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体. 首先加入我们定义了这个杯子接口: interface Cup { void addWater(int w); ...

  8. TypeScript学习指南第二章--接口(Interface)

    接口(Interface) TypeScript的核心机制之一在于它的类型检查系统(type-checker)只关注一个变量的"模型(shape)" 稍后我们去了解这个所谓的形状是 ...

  9. Go语言学习笔记(四)结构体struct & 接口Interface & 反射

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  10. Java接口interface

    Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...

随机推荐

  1. SSM —— 注解解析

    @Component是所有受Spring 管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用. @Controller通过@Controller注解说明该类非 ...

  2. CentOS 7 最小安装网络配置

    通常最小安装是没有自动启动网络连接的,可以通过ifconfig或ip addr查看网络信息 (类似windows里的ipconfig),然而最小安装是没有ifconfig命令的, 这里我们使用ip a ...

  3. P4013 数字梯形问题 网络流

    题目描述 给定一个由 nn 行数字组成的数字梯形如下图所示. 梯形的第一行有 mm 个数字.从梯形的顶部的 mm 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径. 分别 ...

  4. 作业MyCP中无法命令行输入的问题解决

    问题 上网搜了好久,发现是我当时安装JDK时安装了多个版本的JDK javac -version.java -version发现版本不一样 解决 删掉多余的JDK,并在环境变量Path中找到目录,删掉 ...

  5. php redis 处理websocket聊天记录

    <?php ini_set('display_errors', 'on'); class chatClass { private $redis; //这个变量模拟用户当前状态,是否登录,是否可查 ...

  6. 二。Hibernate 查询 HQL、SQL方式

    hibernate的查询1.HQL方式:所有查询都是根据java对象名来完成,对象名替换表名2.SQL方式:保留原来的sql查询风格3.可以通过设置第一条和最大条数来实现各种数据库的分页查询4.通过B ...

  7. JWT是什么鬼

    什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点 ...

  8. Python_自定义递归的最大深度

    自定义递归的最大深度 python默认的最大递归深度为998,在有些情况下是不够用,需要我们自行设置.设置方式如下: import sys sys.setrecursionlimit(num) # n ...

  9. HTML、CSS、JS中常用的东西在IE中兼容问题汇总

    1.因为国内360浏览器.QQ浏览器等更新较快,所以不考虑Chrome支持某个css与否,因为一般都支持. 2.因为火狐等使用的人较少,且更新较快,所以不考虑支持与否,因为一般都支持 3.主要就是汇总 ...

  10. TCP/IP协议、UDP协议、 Http协议

    开放式系统互联通信参考模型(Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化 ...