C#面向对象面试题集锦
1.简述C#中的虚方法
答:注意:当使用virtual关键字修饰符后,不允许再同时使用abstract,static,或override关键字进行修饰
使用virtual关键字修饰的方法就是虚方法,虚方法的关键字用于修饰属性方法.索引器或事件声明,并使他们可以在
派生类中被重写.虚方法必须并提供派生类覆盖该方法的选项,并且必须有实现部分,虚方法的作用是可以在派生类中被
重写.
2.简述C#中的密封类和密封方法
答:密封类使用sealed关键字进行修饰,他不能用作其他类的基类,并且他没有派生类.密封类的作用是防止其他类继承该类
密封方法是使用sealed关键字进行修饰的方法,它并不影响类的继承,但它可以防止重写基类中特定的虚方法.
3.C#静态类构造方法特点
答:注意:静态构造方法,是在构造方法的名字前使用static关键字修饰符的构造方法.
C#中静态类构造方法最主要的特点是:静态的构造方法是最先被执行的构造方法,并且在一个类里只允许有一个无参的静态构造方法.
4个特点如下:只允许有一个无参的静态构造方法在一个类中存在.
静态的构造方法不会被继承
在所有的静态成员被引用之前执行静态构造方法
在所有的构造方法中最先被执行的是静态的构造方法.
4.简述C#派生类中的构造函数
答:使用C#派生类中的构造函数时,需要注意关键字base和this的区别,关键字base表示调用基类中的构造函数,而this表示调用本类中的构造函数.
5.简述接口和接口继承
答:C#中接口具有9中特性:
1.接口只定义,不包含方法的实现
2.接口可以包含方法,属性.事件和索引器
3.接口成员必须是公共的
4.接口不能直接实例化
5,接口不能包含任何字段
6.接口描述可属于任何类或结构的一组相关行为.
7.接口自身均可以从多个接口继承
8.类和结构可以从多个接口继承
9.接口类似于抽象类,但继承接口的类型必须实现接口中的所有定义成员对象.
接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合.当定义了接口,就必须在继承类中实现它,这样类就支持接口中所
指定的所有属性和成员.
6.简述事件机制
答:事件是.net程序员中经常使用的一个机制,事件是一种使对象或类能够提供通知的成员,客户端可以通过提供事件处理程序为相应的
事件添加可执行代码,事件可以理解为一种特殊的委托.
7.什么是委托
答:本质上,委托的调用就是执行了在定义委托时所生成的Invoke()方法
C#中的委托类都继承自Systen.Delegate类型,委托类型的声明与方法签名相似,有一个返回值和任意数目类型的参数.
委托是一种可用于封装命名或匿名方法的引用类型.委托类似于函数指针,但是委托是类型安全和可靠的.
8.C#中被委托的方法必须是静态的嘛?
答:通过上面的分析读者可以清晰地判别,委托不仅能绑定静态方法,同时也可绑定实例方法.当绑定实例方法时,Delegate.Target属性将会设置成指向该实例方法所属类型的一个实例对象,当绑定静态方法时,Delegate.Target属性将会设置成null;