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 ...
随机推荐
- JAVA当中变量什么时候需要初始化
1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值. 默认值如下: Boolean false ...
- Python为8bit深度图像应用color map
图片中存在着色版的概念,二维矩阵的每个元素的值指定了一种颜色,因此可以显示出彩色. 迁移调色板 下述python代码将VOC数据集中的某个语义分割的图片的调色板直接应用在一个二维矩阵代表的图像上 #l ...
- W3Help-兼容性-知识库
http://www.w3help.org/zh-cn/kb/ clear:none/left/right/both/inherit该特性表明元素框的哪一边不可以和先前的浮动框相邻.'clear' 特 ...
- AngularJS版本下载
大家可以从下面地址获取AngularJS所以版本: https://code.angularjs.org/
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- [Java] Maven 建立 Spring MVC 工程
GIT: https://github.com/yangyxd/Maven.SpringMVC.Web 1. 建立 WebApp 工程 下一步: 下一步: 选择 maven-archetype-web ...
- CSS3 速移动效果动画流畅无卡顿
js或jquery 元素移动以像素计算,手机上移动效果会有卡顿 利用CSS3 可以很简单的实现流畅的移动动画 transform: translate3d(66px, 88px, 0px) rotat ...
- Python题目
https://github.com/taizilongxu/interview_python 1 Python的函数参数传递 strings, tuples, 和numbers是不可更改的对象,而l ...
- NC凭证接口(Java发送流和处理返回结果)
问题描述: 金融行业在系统模块分为财务和业务两个系统,我公司是负责业务模块系统,NC公司负责财务系统.但是财务有时候需要生成凭证,这时候就涉及业务模块了,我方就需要写NC凭证接口.这时候就需要三方交互 ...
- 7Hibernate高级----青软S2SH(笔记)