C# Interface的使用方法探讨
public class FuckBase
{
public void FuckSomething(int fuck)
{ }
} public class Fuck :FuckBase, A
{
public int AInt
{
get;
private set;
} public void DoSomething()
{ }
}
public interface A
{
void DoSomething();
} public interface DeriveedA: A
{
new void DoSomething();
}
public interface DeriveedA: A
{
new void DoSomething();
int AInt { get; set; }
}
public interface DeriveedA: A
{
new void DoSomething();
int AInt { get; }
} public class Fuck : DeriveedA
{
public int AInt
{
get;
private set;//当然了这里也可以是protected
} public void DoSomething()
{ }
}
public class Starter
{
/// <summary>
/// 程序入口点
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
Fuck test = new Fuck();
}
} public interface IFuck
{
void Haha();
} public class Fuck :IFuck
{
void IFuck.Haha()
{ }
}
public class Starter
{
/// <summary>
/// 程序入口点
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
Fuck test = new Fuck();
IFuck interfaceFuck = (IFuck)test;
interfaceFuck.Haha();//这个时候相当于可以使用test.Haha这个方法了
}
} public interface IFuck
{
void Haha();
} public class Fuck :IFuck
{
void IFuck.Haha()//注意显式实现接口不能带访问修饰符
{ }
}
public class Starter
{
/// <summary>
/// 程序入口点
/// </summary>
/// <param name="args"></param>
public static void Main(string[] args)
{
Flys fly = new Flys();
IFlyB flyB = fly;
flyB.Cost();//计算航班B的价格 IFlyC flyC = fly;
flyC.Cost();//计算航班C的价格 fly.Cost();//计算普通航班的价格 Console.ReadKey();
}
}
public interface IFlyB
{
void Cost();
} public interface IFlyC
{
void Cost();
} public class Flys :IFlyB,IFlyC
{
public void Cost()
{
Console.WriteLine("Other fly");
} void IFlyB.Cost()
{
Console.WriteLine("Fly B");
} void IFlyC.Cost()
{
Console.WriteLine("Fly C");
}
}

class Flys
{
public:
virtual void cost()const =
{
std::cout << "Other fly" << std::endl;
}
}; class FlyB :public Flys
{
public:
void cost()const override
{
std::cout << "FlyB" << std::endl;
}
}; class FlyC :public Flys
{
public:
void cost()const override
{
std::cout << "FlyC" << std::endl;
}
}; class OtherFly :public Flys
{
public:
void cost()const override
{
Flys::cost();
}
};
public interface IOne
{
int Item { get; set; }
} public interface ITwo
{
int Item();
} public class Hey : IOne, ITwo
{
public int Item { get; set;} public int Item()
{
throw new NotImplementedException();
}
}
public interface IOne
{
int Item { get; set; }
} public interface ITwo
{
int Item();
} public class Hey : IOne, ITwo
{
public int Item { get; set;} int ITwo.Item()
{ }
}
public class ListNode<T> : IList<T>
{
public T RemoveAt(int index)
{ } void IList<T>.RemoveAt(int index)
{ }
}
C# Interface的使用方法探讨的更多相关文章
- as3.0 interface接口使用方法
[转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMet ...
- 关于Oracle本地连接出现与监听有关的问题的解决方法探讨
关于Oracle本地连接出现与监听有关的问题的解决方法探讨 监听的作用: 用于应用桌面即用户与数据库服务器建立连接的媒介,客户端发送连接请求,监听识别请求并建立客户端与服务器的连接后,监听的使命并完成 ...
- GO学习-(38) Go语言结构体转map[string]interface{}的若干方法
结构体转map[string]interface{}的若干方法 本文介绍了Go语言中将结构体转成map[string]interface{}时你需要了解的"坑",也有你需要知道的若 ...
- 关于java8 interface的default方法
转自鸟窝 博主写的挺详细,不了解的看一看啊 以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题. 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implem ...
- WebGIS中前端JS生成等值面方法探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在之前的博文<WebGIS中等值面展示的相关方案简析&g ...
- 可前端解密的加密方法探讨和str_replace和preg_replace分析
目的: 对字符串‘123456’进行后端加密,前端js可解密出真实字符 测试代码php: static $hashMap = array( '0' => '4', '1' => '9', ...
- Android平台Camera实时滤镜实现方法探讨(三)--通过Shader实现YUV转换RBG
http://blog.csdn.net/oshunz/article/details/50055057 文章例如该链接通过将YUV分成三个纹理,在shader中取出并且经过公式变换,转换成RGB.我 ...
- Android平台Camera实时滤镜实现方法探讨(九)--磨皮算法探讨(一)
上一篇开头提到了一些可用于磨皮的去噪算法.以下我们实现这些算法而且观察效果,咱不考虑实时性的问题 本文首先探讨的首先是<基于局部均方差相关信息的图像去噪及其在实时磨皮美容算法中的应用> 该 ...
- js 中读取JSON的方法探讨
方法一:函数构造定义法返回 var strJSON = "{name:'json name'}"; //得到的JSONvar obj = new Function("r ...
随机推荐
- 移动端开发viewport深入理解(转)
一.viewport的概念 移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,就是浏览器上用来显示网页的那部分区域,但viewport不局限于浏览器可视区域 的大小,它 ...
- Python文本处理nltk基础
自然语言处理 -->计算机数据 ,计算机可以处理vector,matrix 向量矩阵. NLTK 自然语言处理库,自带语料,词性分析,分类,分词等功能. 简单版的wrapper,比如textbl ...
- Banner中利用Jquery隐藏显示下方DIV块
实现方式1: <!DOCTYPE html><html><head> <meta charset="UTF-8"> &l ...
- 动手实践记录(利用django创建一个博客系统)
1.添加一个分类的标签,和主表的关系是 外键 class Category(models.Model): """ 分类 """ name = ...
- tomcat/jsp/servlet版本关系
Servlet Spec JSP Spec EL Spec WebSocket Spec JASPIC Spec Apache Tomcat version Actual release revisi ...
- jQuery对数组操作
//对象数组 var trackObj1={ , "direcLine":"line31" }; var currentTrack=[]; currentTra ...
- Struts2之开山篇
①Struts2是什么? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图 ...
- JAVA中ListIterator和Iterator详解与辨析
在使用Java集 合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList. LinkedList和Vector的时候可以使用 ...
- Web API系列(一)设计经验与总结
在移动互联网的时代, Web服务已经成为了异构系统之间的互联与集成的主要手段,各种 Web服务几乎都采用REST风格的Web Api来构建. 通过Http协议的形式来. 以Get/Post方式发送请求 ...
- remove name="ProxyModule“会导致重复执行
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访 ...