日期:2014-05-19  浏览次数:20600 次

几个概念想请教一下各位教师.
1.程序集的概念是什么范围?   (10分)
internal   int   a   //范围是当前程序集.

2.Virtual类的函数与抽象类区别?(20分)
A.虚函数必须要有函数主体,虚函数在派生类的可以但不是必须ovrride来实现它.
B.抽象函数不是必须要有函数主体,抽象函数在派生类必须ovrride来实现它.
不知道对不对还有什么别的区别?

3.接口主要作用?(20分)
目的主要是表达一种层次关系,派生类可以有多个接口基类.

4.接口与虚函数及抽象类的关系是什么?(50分)

------解决方案--------------------
1.我记得测试过,程序集应该就是一个解决方案中(一个项目可包含多个解决方案)

2.visual实际上就是一个本身具有内容的函数,在子类中如有必要才进行重写。抽象则只是一个函数的框架,或者说是一个设计图、一个提纲,具体内容必须由其子类完善。抽象函数必须包含在抽象类中,虚拟函数则不必。

3.接口是用来定义一个规范,就好比我们经常用的USB接口,符合这个规范的所有设备(类)都可以连接及使用。

4.一个抽象类几乎就等于是一个接口,它们在很多方面都互同,但是C#只支持单继承,所以需要其他方面扩展时就要用到接口了,而不是继承多个抽象类。

来个拟喻吧:

虚拟函数:就好像你爸爸把他的自行车给了你,你就继承了这部自行车,但是它是可被重写的,你完全可以自己买一部新的自行车或者汽车来替代它。但是有些继承来的东西并不是可以重写的,比如你的鼻子,它不是虚拟的(你要做整容手术例外~)。

抽象函数:这就如你爸爸交给你的一项任务,比如他要求你完成大学学业,他自己不一定要完成大学学业,就算完成了你也不可能将其继承,所以无论如何你都应该自己去实现它。

接口:这就比如某个漂亮的单身女孩要求她的男友一定要有C#编程能力(这样的女孩地球上不多,要珍惜),很不幸,你的父亲并没有这个能力,你自然也无从继承,那么如果你想做她男朋友的话,只能依靠自己去实现了,这实际上也是一种任务,不同的是,它不是你爸爸要求你去做的。
------解决方案--------------------
1.程序集是比较笼统的逻辑划分,顾名思义,程序集就是“程序的集合”。在.NET框架下,代码模块一般就是一个程序集,因为我们一般在VS下开发,默认一个代码模块就是用一个DLL。所以在VS开发环境中把程序集理解成DLL或者项目都不过分。
------解决方案--------------------
3.接口就是类定义给实例的调用入口。
4.接口=只有虚函数的抽象类,不同的是我们不能继承自多个抽象类。