我对c#中的接口理解不是很深刻,希望哪为大侠讲解一下!!!!!!!!!!
解决方案 »
- C# winform嵌入axspreadsheet问题
- 多线程中的几个方法的实际用法?
- 图片控件在规定的时间图片变灰
- C#编程 将图片插入word 怎么使图片衬于文字下方?
- 怎样把字符中的英文和中文分别截取出来啊
- 关于Dictionary.KeyCollection
- asp.net页面传值给dropdownlist控件的问题
- SOS 如何用C#代码在Excel中插入一列waiting……
- 怎样让listBox的滚动条滚到底
- C#如何做类360桌面快捷方式上有个数字。数字根据要求变
- 非得用System.Data.DataRow吗?
- 如何在datagrid的单元格中使用回车实现本单元格向数据库更新?
interface Ipatient
{
void MustBeHuman();
void SomeOther();
}
接口要求必须是人类并满足其他一些特征。这样大树就不能找外科医生了~~ :)
面向接口可以使代码的扩展性好很多~
明显的好处在于,使用者站在接口的立场上而不关心实现接口的具体的类举例如下:我的一个俄罗斯方块接口如下:(iblock)
提供四个点的坐标,提供一系列方法如:绘制本身、擦除本身、能否移动(参数,方向)
能否旋转(参数,状态),移动(参数,方向),旋转(参数,状态).....
然后我写了一个类来实现这个接口,这个类是一个长条。(blockOne)
当然,还可以再写其他的类来实现这个接口,比如说一个“田”字(blockTwo)在主程序调用的时候我就不关心到底是一个长条还是一个田字,因为我知道他们都是iblock的一个实现。iblock o;o = Block.GetBlocks()//这个方法是一个随机产生方块的方法,具体产生的是一长条,还是一个方块,我不关心,我关心的是,他归根到底实现了iblock接口
这样,我就可以调用iblock的方法了if(o.CanMove(right))
o.Move(right)
大家可以发现,如果要扩充一个古怪的方块,那也一样可以继承这个接口,所需要修改的方法仅仅是Block.GetBlocks()这个随机产生方块的方法。主程序是不用任何修改的。