C# 中类,抽象类和接口的区别,以及调用的方法

xiaoqiang6775 2010-10-30 08:40:46
高手指教,内容同标题一样
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-10-31
  • 打赏
  • 举报
回复
这个主要是从设计角度来看。接口是描述行为约束,基类描述对象。
简单说,
接口可以描述为某个类,具有什么行为和属性,这时候就用接口。
某个类,是某个类,这时候就用基类继承。


比如
IClonable接口表示可以被复制,具有自我复制的能力。
Form,当你写类继承自Form时候,你会说我写的是一个窗体,继承自Form窗体基类。
freemangod 2010-10-31
  • 打赏
  • 举报
回复
准确说,C#是不支持多重继承的。c++等可以支持。至于区别,我认为1楼说得够详细了。我就不废话了。
xiaoqiang6775 2010-10-31
  • 打赏
  • 举报
回复
多谢!!!
zw_l_1989 2010-10-31
  • 打赏
  • 举报
回复
从开发角度出发
抽象类是由子类来决定是否需要专门写个父类而是用的思想
接口则是在开发时直接预先定义可能产生而使用

我也不清楚我表达了什么 简单的说就是
抽象类是由上而下的思想
接口反之
  • 打赏
  • 举报
回复
.net并不支持多重继承,因此假设你需要设计一个功能作为协作的规范,就不可能仅仅使用class,因为人家的实现类完全可能(不得不)从其它类继承。所以不支持多重继承的语言,注定了只能使用interface这种更低级的东西。

但是OOAD中不需要考虑这些,一律作为类来设计就可以了。当然,OOAD中应该只考虑必要的设计思路,不应该考虑“不支持多重继承”这种概念,而只是在考虑具体的工具语言如何来实现OOAD时才介绍一下interface而已。
xfxbnb 2010-10-30
  • 打赏
  • 举报
回复
use新手 学习一下的啊,
wuyq11 2010-10-30
  • 打赏
  • 举报
回复
接口支持多继承;抽象类不能实现多继承。
接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。
接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。
接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。
接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。
接口可以作用于值类型和引用类型;抽象类只能作用于引用类型
面向对象思想的一个最重要的原则就是:面向接口编程。
接口着重于CAN-DO关系类型,而抽象类则偏重于IS-A式的关系;
接口多定义对象的行为

如果预计要创建组件的多个版本,则创建抽象类
如果创建的功能将在大范围的全异对象间使用,则使用接口

111,120

社区成员

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

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

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