接口类Interface1.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1 {
  8.  
  9. /*
  10. 接口:属性、方法、事件、所引器 默认为public 但不能包含常数、字段、
  11. 运算符、实例构造函数、析构函数或其他类型、任何种类的静态成员
  12. 不能包含字段
  13. 成员不允许添加访问修饰符 abstract(抽象类)也不行
  14. 不能包含实现成员的任何代码
  15. 实现过程必须在实现接口的类中完成
  16. 接口可实现多重继承
  17. */
  18. interface Interface1 {
  19. //属性
  20. //1->接口成员不允许有访问修饰符
  21. //2->接口中不能有字段,属性声明为自动属性
  22. string Index {
  23. get;
  24. set;
  25. }
  26. //方法
  27. //方法不能包含方法体
  28. void Descreption();
  29. }
  30. }

对接口实现的类Class1.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1 {
  8. class Class1:Interface1 {
  9. private string _index;
  10. ////实现接口(隐式)
  11. //public void Descreption() {
  12. // Console.WriteLine("接口描述"+this.Index);
  13. //}
  14. //public string Index {
  15. // get;
  16. // set;
  17. //}
  18.  
  19. //接口实现(显式)
  20. void Interface1.Descreption() {
  21. Console.WriteLine("接口描述"+ _index);
  22. }
  23. string Interface1.Index {
  24. get {
  25. return _index;
  26. }
  27.  
  28. set {
  29. _index = value;
  30. }
  31. }
  32. }
  33. }
 

调用类

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Collections;
  7. using System.Runtime.InteropServices;
  8.  
  9. namespace ConsoleApplication1 {
  10. class Program {
  11. static void Main(string[] args){
  12.  
  13. Class1 class1 = new Class1();
  14. ////隐式的调用(具体类调用)
  15. //class1.Index = "嘿嘿";
  16. //class1.Descreption();
  17. //显式的调用(接口来调用)
  18. Interface1 interface1 = new Class1();
  19. interface1.Index = "嘿嘿";
  20. interface1.Descreption();
  21.  
  22. Console.ReadKey();
    显式隐式实现方式并存的情况下,接口调用的是显性方法,类对象调用的是隐形方法
    当一个类实现的多个接口中具有相同的方法时,用显式方法来专门实现某个接口的方法时就显得非常有用
  23. }
  24.  
  25. }
  26.  
  27. }

以前写的没一点印象了,下边接着忽悠

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace 接口 {
  8. class Program {
  9. static void Main(string[] args) {
  10. Ijiekouable jiekou = new person();
  11. jiekou.jikou();
  12.  
  13. Console.ReadLine();
  14. }
  15. }
  16. //接口,必须实现
  17. interface Ijiekouable {
  18. void jikou();
  19. }
  20. class person:Ijiekouable {
  21. public void jikou() {
  22. Console.WriteLine("隐式实现接口");
  23. }
  24. void Ijiekouable.jikou() {
  25. Console.WriteLine("显式实现接口");//优先级高
  26. }
  27. }
  28. }

C#之接口的更多相关文章

  1. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  2. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  3. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  4. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  6. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  7. 【WCF】自定义错误处理(IErrorHandler接口的用法)

    当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...

  8. PHP以接口方式实现多重继承(完全模拟)--学习笔记

     1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...

  9. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  10. 【接口开发】浅谈 SOAP Webserver 与 Restful Webserver 区别

    接口,强大,简单,交互,跨越平台 下面简单阐述这两大接口思想 一 REST: REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性. ...

随机推荐

  1. git+coding.net记录篇

    很久没用了,有些配置快忘记了,记录下来,以供以后参考回忆 首先下载好git插件,然后在as上面设置好本地项目地址 设置好git,点击test测试通过 然后把项目添加到git本地库 你会看到你项目里的文 ...

  2. iOS编码规范

      The official raywenderlich.com Objective-C style guide.   This style guide outlines the coding con ...

  3. NFS服务器搭建——可用于共享文件或负载均衡文件共享服务器使用

    一.软件包安装 yum -y install nfs-utils  rpcbind 二.服务器端配置共享目录 1. 在服务器上创建NFS共享目录:mkdir /usr/local/test 2. 设置 ...

  4. linux hosts文件详+mac主机名被莫名其妙修改

    1.名词解析 主机名: 无论是在局域网还是在INTERNET上,每台主机都有一个IP地址,用来区分当前是那一台机器(其实底层是使用机器的物理地址),也就是说IP地址就是一个主机的门牌号,唯一的标示这一 ...

  5. [No0000AB]用Visual Studio 2015在 WIN10 64bit 上编译7-zip (32 bit)

    1.7-ZIP简介 7-zip 是一款免费的压缩解压软件.ZIP格式的文件默认被苹果和微软支持,完全不需要额外安装其他软件就可以解压.但对于非US-ASCII编码的文件名和大于2GB的ZIP文件,可能 ...

  6. django之一些feature

    前端之django一些feature 本节内容 cookie session 跨站请求保护 分页 序列化 model模块 CBV和FBV 模板渲染对象 1. cookie cookie 是一种发送到客 ...

  7. Linux计划任务.md

    crond crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程 ...

  8. jQuery Ajax传值给Servlet,在Servlet里Get接受参数乱码的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...

  9. 捕获起英文名Edda的灵感来源,我的心愿是程序员这个行业能够男女人数平衡

    在腾讯的暑期训练营结识过不少鹅厂的前辈,他们对我的成长提供了很大的帮助,可以说有着知遇之恩,大部分现在还保持着联系,请教问题时会不吝赐教,以至于就在前两天11号企鹅18岁的成年礼,朋友圈刷满了领腾讯总 ...

  10. python优先队列,队列和栈

    打印列表的疑问 class Node: def __str__(self): return "haha" print([Node(),Node()]) print(Node()) ...