1.练习1-7 面向对象编程练习
1.C#中的方法重写使用关键字(a)
a) override
b) overload
c) static
d) Inherit
2.以下的C#代码,试图用来定义一个接口:
public interface IFile
{
int A;
int delFile()
{
A = 3;
}
void disFile();
}
关于以上的代码,以下描述错误的是(d)。(选择一项)
a) 以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误
b) 以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数
c) 代码void disFile();定义无错误,接口可以没有返回值
d) 代码void disFile();应该编写为void disFile(){}; //接口中不能去实现函数
3.在C#中,接口与抽象基类的区别在于(a)
a) 抽象基类可以包含非抽象方法,而接口只能包含抽象方法
b) 抽象基类可以被实例化,而接口不能被实例化
c) 抽象基类不能被实例化,而接口可以被实例化
d) 抽象基类就是接口,它们之间无差别
4.在开发某图书馆的图书信息管理系统的过程中,开始为教材类图书建立一个TextBook类;现在又增加了杂志类图书,于是需要改变设计,则下面最好的设计应该是(c)
a) 建立一个新的杂志类Journal。
b) 建立一个新的杂志类Journal,并继承TextBoook类。
c) 建立一个基类Book和一个新的杂志类Journal,并让Journal类和TextBoook类都继承于Book类。
d) 不建立任何类,把杂志图书的某些特殊属性加到TextBoook类中。
5.可以使用(a)关键字重写方法
a) Override
b) New
6.以下叙述正确的是:(bc)
A.接口中可以有虚方法。
B.一个类可以实现多个接口。
C.接口不能被实例化。
D.接口中可以包含已实现的方法。
7.下列代码输出为( B )
class Father
{
public void F()
{
Console.WriteLine("A.F");
}
public virtual void G()
{
Console.WriteLine("A.G");
}
}
class Son: Father
{
new public void F()
{
Console.WriteLine("B.F"); //隐藏了父类中的方法,父类中的F方法还存在。
}
publi