第一范文网 - 专业文章范例文档资料分享平台

3.面向对象编程- 练习题

来源:用户分享 时间:2025/5/23 23:43:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

C#面向对象编程-练习题

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.以下叙述正确的是:(b,c)

A.接口中可以有虚方法。 B.一个类可以实现多个接口。 C.接口不能被实例化。 D.接口中可以包含已实现的方法。 7.下列代码输出为( b): class Father{

public void F() { Console.WriteLine(\

public virtual void G() { Console.WriteLine(\}

class Son: Father{

new public void F() { Console.WriteLine(\隐藏父类的方法F(),但是父类中的方法F()还是存在

public override void G() { Console.WriteLine(\重写父类中的方法G(),父类中的方法已不存在 }

class override_new{ static void Main() { Son b = new Son(); Father a = b;//关键点

a.F();//通过父类声明的对象,调用隐藏方法时,会调用父类中的A.F() b.F();//通过子类声明的对象,调用隐藏方法时,会调用子类中的B.F() a.G();//方法F()是隐藏方法,方法G()是重写方法 b.G(); } }

A. A.F B.F A.G B.G B. A.F B.F B.G B.G C. A.F A.F B.G B.G D. B.F B.F B.G B.G 8.写出程序的输出结果: public class A {

public virtual void Fun1(int i) {

Console.WriteLine(i); }

public void Fun2(A a) {

a.Fun1(1); Fun1(5); } }

public class B:A {

public override void Fun1(int i) {

base.Fun1(i+1);//base关键字调用的是父类的方法 }

public static void Main() { B b=new B(); A a=new A();

a.Fun2(b);//结果:2,5

b.Fun2(a);//结果:1,6 } } 答案:

9.在C#中,允许多接口继承,从多个接口时,使用“:”后跟继承的接口的名字,多个接口名称之间使用()符号进行分割。(选择一项)c a)”.’ b)”->” c)”,” d)”::”

10.阅读以下的C#代码: class A {

public virtual void printStr(string str) {

Console.WriteLine(str); } }

class B:A {

public override void printStr(string str) {

str=str+\重写的方法\ Console.WriteLine(str); } }

class DefaultInitializerApp {

public static void Main() {

B b=new B();

A a=b;//这条语句的含义应该是把B类定义的对象b赋值给A类定义的对象a a.printStr(\打印\即a=b b.printStr(\打印\ Console.ReadLine(); } }

运行程序后将在控制台窗口打印( )。(选择一项) a a. 打印 重写的方法 打印 重写的方法 b. 打印 打印 重写的方法 c. 打印

d. 程序有误,不能运行 11.在C#的语法中,()关键字可以实现在派生类中对基类的虚函数进行重写(选一项)a> override

a

b> new c> static d> virtual

12.请问,此程序输出结果是()//c#中只有单重继承,所以子类只有一个父类 c abstract class BaseClass{

public virtual void MethodA(){Console.WriteLine(\public virtual void MethodB(){} }

class Class1: BaseClass{

public void MethodA(){Console.WriteLine(\public override void MethodB(){} }

class Class2: Class1{

new public void MethodB(){} }

class MainClass{

public static void Main(string[] args){Class2 o = new Class2();o.MethodA(); } }

A. BaseClass

B. BassClass Class1 C. Class1

D. Class1 BassClass

a 13.请问,此程序输出结果是() public abstract class A {

public A() { Console.WriteLine('A'); }

public virtual void Fun() { Console.WriteLine(\ }

public class B: A {

public B() { Console.WriteLine('B'); }

public new void Fun() { Console.WriteLine(\

public static void Main() { A a = new B();a.Fun(); } //用父类声明,用子类构造 }

A. A B A.Fun() B. A B B.Fun() C. B A A.Fun() D. B A B.Fun()

14.以下叙述正确的是():b A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。

C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。

15.以下关于C#代码的说法正确的是()。(选择一项) a

Public abstract Animal {

搜索更多关于: 3.面向对象编程- 练习题 的文档
3.面向对象编程- 练习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6i0id2x5s885bn68aded_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top