C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc

C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc

ID:50318438

大小:40.00 KB

页数:4页

时间:2020-03-08

C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc_第1页
C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc_第2页
C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc_第3页
C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc_第4页
资源描述:

《C#程序设计及应用教程 第2版 教学课件 马骏习题答案 第05章 习题解答.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、习题5参考解答1、简要回答下列问题。(1)举例说明new关键字可用于哪些方面?(2)sealed关键字的作用是什么?什么情况下需要使用sealed关键字?(3)哪些关键字可以用于版本控制?【解答】1)在C#中,new关键字可用作运算符或修饰符。作为运算符用于在堆上创建对象和调用构造函数。作为修饰符用于隐藏基类成员的继承成员。2)在类声明中使用sealed修饰符可防止其它类继承此类。在方法声明中使用sealed修饰符可防止扩充类重写此方法。sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封

2、类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。3)override关键字和new关键字均可用于版本控制。在C#中,默认情况下方法不是虚拟的。若要使方法成为虚拟方法,必须在基类的方法声明中使用virtual修饰符。然后,派生类可以使用override关键字重写基类中的虚拟方法,或使用new关键字隐藏基类中的虚拟方法。如果override关键字和new关键字均未指定,编译器将发出警告,并且派生类中的方法将隐藏基类中的方法。2、简要回答抽象类和接口的主要区别。【解答】抽象类和接口的一个主要差

3、别是:类可以实现多个接口,但仅能从一个抽象类或任何其它类型的类继承。3、编写一个控制台应用程序,完成下列功能,并回答提出的问题。(1)创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。(2)从A继承一个名为C的新类,并在C内创建一个成员B。不要为C创建构造函数。(3)在Main方法中创建类C的一个对象,写出运行程序后输出的结果。(4)如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?【解答】usingSystem;publicclassA{publicA(){Console.Writ

4、eLine("A");}}publicclassB{publicB(){Console.WriteLine("B");}}publicclassC:A{Bnewb=newB();}classMainClass{publicstaticvoidMain(){Cnewc=newC();Console.ReadLine();}}输出结果:BA如果在C中也创建一个构造函数输出“C”,即添加:publicC(){Console.WriteLine("C");}则整个程序运行的结果为:BAC4、编写一个控制台应用程序,完成下列功能,并写出运

5、行程序后输出的结果。(1)创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。(2)再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。(3)在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。【解答】usingSystem;publicclassA{publicvirtualvoidMyMethod(intnum){num+=10;Console.WriteLine(num);}}

6、publicclassB:A{publicoverridevoidMyMethod(intnum){num+=50;Console.WriteLine(num);}}classMainClass{publicstaticvoidMain(){Anewa=newA();newa.MyMethod(2);Bnewb=newB();newb.MyMethod(2);Console.ReadLine();}}输出结果:12525、假设Node类的每一个节点包括有两个字段:m_data(引用节点的数据)和m_next(引用链接列表中的下一

7、项)。这两个字段都是由构造函数方法设置的。该类有两个功能,第一个功能是通过名为Data和Next的只读属性访问m_data和m_next字段。第二个功能是对System.Object的ToString虚拟方法进行重写。试分别用类和泛型两种方法编写程序实现上述功能。【解答】usingSystem;classNode{Objectm_data;Nodem_next;publicNode(Objectdata,Nodenext){m_data=data;m_next=next;}//访问结点数据publicObjectData{get

8、{returnm_data;}}//访问下一个结点publicNodeNext{get{returnm_next;}}//获取结点数据描述publicoverrideStringToString(){returnm_data.ToString();}}//链表结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。