欢迎来到天天文库
浏览记录
ID:15793818
大小:55.14 KB
页数:9页
时间:2018-08-05
《c_程序设计及应用教程(第2版)第5章课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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”,整个程序运行的结果又是什么?答:(1)、usingSystem;us
4、ingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication4{publicclassA{publicA(){Console.WriteLine("A");}}publicclassB:A{publicB(){Console.WriteLine("B");}}classProgram{staticvoidMain(string[]args){Bshu=newB();Console.Read
5、Line();}}}(2)、usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication4{publicclassA{publicA(){Console.WriteLine("A");}}publicclassB{publicB(){Console.WriteLine("B");}}publicclassC:A{Bnewc=newB();}classProgra
6、m{staticvoidMain(string[]args){Bshu=newB();Console.ReadLine();}}}(3)、usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication4{publicclassA{publicA(){Console.WriteLine("A");}}publicclassB:A{publicB(){Console.
7、WriteLine("B");}}publicclassC:A{Bnewc=newB();}classProgram{staticvoidMain(string[]args){Bshu1=newB();Console.WriteLine("");Cshu2=newC();Console.ReadLine();}}}(4)、usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsol
8、eApplication4{publicclassA{publicA(){Console.WriteLine("A");}}publicclassB:A{publicB(){Console.WriteLine("B");}}publicclassC:A{publicC(){Console.WriteLine("C");}Bnewc=newB();}classProgram{staticvoidMai
此文档下载收益归作者所有