C复习习题讲解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计

1. 描述new 有两种用法

第一种:new Class(): 创建对象

第二种: 覆盖方法

public new XXXX(){}

2. 类成员有( ) 种可访问控制权限

可访问性:public ,protected ,private,internal

3. 用sealed 修饰的类有什么特点

sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。

密封类不能同时为抽象类。

4.如何理解委托?

答: 据说相当于函数指针, 定义了委托就可以在不调用原方法名称的情况下调用那个方法

5.C#中的实现多继承的是什么

答: 接口

6.传入某个属性的set 方法的隐含参数的名称是什么?

value ,它的类型和属性所声名的类型相同。

7.委托声明的关键字是___ delegate ___

8.下面的代码中有什么错误吗?________

using System;

class A

{

public virtual void F(){

Console.WriteLine("A.F");

}

}

abstract class B:A

{

public abstract override void F();

答:abstract override 是不可以一起修饰

} // new public abstract void F();

的错误处理机制是什么?

答:.net 错误处理机制采用try->catch->finally 结构,发生错误时,层层上抛,直到找到匹配的Catch 为止。

10.如何在C#中实现继承?也就是继承的格式

在类名后加上一个冒号,再加上基类的名称。

11.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:不是。可以用任意类型

12.被protected 修饰的属性/ 方法在何处可以访问?

在继承或间接继承与这个类的子类中可以访问。

13.私有成员会被继承么?

会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。

14.请描述一下修饰符protected internal.

被protected internal 修饰的属性/ 方法只能在它的在同一个程序集( Assembly )中的子类被访问。

15.C#提供一个默认的无参数构造函数,当实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样应该写几个构造函数?

两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实

现那个无参数构造函数。

16.C#中所有对象共同的基类是什么?

System.Object.

17.重载和覆写有什么区别?

重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。

18.在方法定义中,virtual 有什么含意?

被virtual 修饰的方法可以被子类覆写。

19.能够将非静态的方法覆写成静态方法么?

不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将

virtual 改为override.

19. 可以覆写私有的虚方法么?

不可以,甚至子类中无法访问父类中的私有方法。

20.能够阻止某一个类被其他类继承么?

可以,使用关键字sealed.

21.能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?

可以,标记这个类为public ,并标记这个方法为sealed.

22. 什么是抽象类(abstract class )?一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。

23. 接口(interface )是什么?

只含有公有抽象方法(public abstract method )的类。这些方法必须在子类中被实现。

24.以下关于C#中方法重载的说法正确的是(CD。(选择二项)

A.如两个方法名字不同,而参数的数量不同,那么它们可以构成方法重载

B.如两个方法名字相同,而返回值的数据类型不同,那么它们可以构成方法重载

C.如两个方法名字相同,而参数的数据类型不同,那么它们可以构成方法重载

D.如两个方法名字相同,而参数的数量不同,那么它们可以构成方法重载

25.在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用(A)关键字。(选择一项)

A.override

B.new

C.static

D.virtual

A.委托是一种类的成员

B.委托必须定义在类中

C.定义委托需要使用delegate关键字

D.委托是一种数据类型

27.下列关于C#的异常处理的说发法,错误的是(BC)。(选择二项)

A.Try 块必须跟catch 块组合使用,不能单独使用

B.—个try块可以跟随多个catch块

C•使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常

D.在try …catch …..fin块中,即便开发人员编写强制逻辑代码,也不能跳出fin ally块的执行

28.在C#中,接口与抽象基类的区别在于(D)。(选择一项)

A.抽象基类可以包含非抽象方法,而接口只能包含抽象方法

B.抽象基类可以被实例化,而接口不能被实例化

C.抽象基类不能被实例化,而接口可以被实例化

D.抽象类可以包括数据成员,接口只包括抽象函数、抽象属性和抽象索引等,没有数据。

29.在C#中,(C)访问修饰符修饰的变量只能由当前程序集访问。

A.public

B.protected

C.internal

D.private

分析程序输出结果可以有以下知识点出:

30.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?答:不是。可以用任意类型。

31. 在下面的例子里

相关文档
最新文档