首页 > 代码库 > 接口2014年6月11日01:11:37
接口2014年6月11日01:11:37
1 【1】C#中的接口和类有什么异同。 2 3 不同点: 4 不能直接实例化接口。 5 接口不包含方法的实现。 6 接口可以多继承,类只能单继承。 7 类定义可在不同的源文件之间进行拆分(partial)。 8 9 相同点: 10 接口、类和结构都可以从多个接口继承。 11 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。 12 接口和类都可以包含事件、索引器、方法和属性(属性本质上是两个方法)。 13 14 基础知识:接口只能定义方法(只能定义行为,不能定义实现也就是字段),因为事件、索引器、属性本质上都是方法,所以接口中也可以定义事件、索引器、属性。
1 【2】抽象类和接口有什么区别? 2 3 相同点: 4 都不能被直接实例化,都可以通过继承实现其抽象方法。 5 6 不同点: 7 接口支持多继承;抽象类不能实现多继承。 8 接口只能定义行为(能力);抽象类既可以定义行为(能力),还可能提供实现。 9 接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法; 10 抽象类可以定义字段、属性、包含有实现的方法。 11 接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。 12 加分的补充回答:讲设计模式的时候SettingsProvider的例子。
1 public interface Flyable() 2 { 3 void fly();//接口中的方法不能声明public、private等,因为没有意义,private是类内部互相调,哪儿来的类内部?. 4 } 5 6 abstract class Shape 7 { 8 public abstract double GetArea();//有抽象成员,类必须标记为抽象类 9 }
1 【3】一个类只能继承自一个类,但是可以实现多个接口 2 3 一个抽象类中可以定义实现代码,但是接口不能定义实现代码(哪怕方法中只是一个空的括号,也是空实现)。 4 5 接口的多态特性、类型转换、is、as 和类基本一样。 6 7 8 抽象类定义的是公共的实现和能力,接口只能定义公共的能力。 9 10 接口相当于给类打一个标签,标志这个类有这种能力。 11 12 13 接口中的方法不能声明public、private等,因为没有意义,private是类内部互相调,哪儿来的类内部? 14 15 接口中能声明:方法,属性(属性本质是两个方法),索引器,不能声明字段。
【4】常用系统接口: //using,实现了IDisposable接口的对象可以使用using进行资源声明,出了using的作用域以后自动调用Dispose方法。 Dispose和Close的区别:实现了IDisposable接口必须定义Dispose方法,但不一定有Close方法,很多Dispose的实现都是调用Close方法。SqlConnection Close以后还能重新Open,但是Dispose以后就不能再用。 //foreach:实现了IEnumerable接口的对象都可以使用foreach进行遍历。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。