C复习习题讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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. 在下面的例子里