关于接口与虚类的迷惑

ElderBrother 2003-04-12 09:32:03
谁能举一个具体的例子来说明什么时候使用接口,什么时候使用虚类,什么时候直接就是用非虚类。

为什么?
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DavidBone 2003-04-17
  • 打赏
  • 举报
回复
up
shmily_nnx 2003-04-17
  • 打赏
  • 举报
回复
先说明一下,虚类和虚方法没什么必然的联系
接口在net中用来实现多重继承,然而遗憾的是,接口中的方法你还得在每个class中写上好几遍:(
虚类通常用做一系列类的基类
maotin 2003-04-17
  • 打赏
  • 举报
回复
接口,如果你继承了,你将必须实现这个接口里的所有的东西,就像签订的合同。 如果这个接口有你需要的东西(方法,属性...),你就可继承它。
cleo 2003-04-17
  • 打赏
  • 举报
回复
使用虚类还有一个用处就是禁止直接实例化,如果你不想直接被实例化,就声明为abstract class,相反,如果你想要直接实例化就不能声明为abstract class
cleo 2003-04-17
  • 打赏
  • 举报
回复
zhuohs(凌九霄)说得不错,
补充一点,在C#中间,abstract class(虚类) 可以含有非虚方法,即已经实现的方法,但是接口不能。
如果你的虚类是纯虚类,即所有方法都是虚方法的时候,就基本相当于接口,但是C#也是不能继承多个类的,但是可以继承多个接口。
yuwen16 2003-04-17
  • 打赏
  • 举报
回复
高手们,多讲讲,我喜欢听。
强烈gz
zhuohs 2003-04-17
  • 打赏
  • 举报
回复
实际上在OOP中,你都可以用直接的方式实现Interface模式——我们通常把纯虚类称为“接口”,并用多重继承来“实现”接口。在实现COM规范时,我们也是用纯虚类来作为接口的。. ...
Knight94 2003-04-17
  • 打赏
  • 举报
回复
在一个类的集合中,如果有方法,对不同的对象有不同的操作,但如果起不同的名会很罗嗦,这就需要用虚函数了,例如:
画图
基类:Object 有一Draw的虚函数
而它的子类,例如Dot、Line、Rectangle等等,自然也有Draw函数,如果起另外的名,会很别扭,那么只要在各自的类中重载此函数就行了。
duying 2003-04-17
  • 打赏
  • 举报
回复
C#不支持多重继承,而接口则可以,所以接口在这发面有很重要的作用,尽管他不能进行自身的实现,但是他规范了继承他的类的具体实现;
虚类在很多时候和接口很相似,不过还是有一些区别,而非虚类则用的最多,
其实对于刚学习编程的同仁,多看书,多看别人的代码是一个不错的方法,
gordenfl 2003-04-17
  • 打赏
  • 举报
回复
gz

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧