abstract 和 interface 究竟有什么区别?

smallmark 2003-07-08 01:13:50
如题!
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanfey 2003-08-07
  • 打赏
  • 举报
回复
gz
beyondii 2003-07-08
  • 打赏
  • 举报
回复
interface只是说明你的对象能干什么,有什么属性和方法。
你并不能知道interface中的方法的具体实现。
abstract已经实现了部分方法,也就是说你可以知道你的对象的某些方法是怎么干的。
ai0ai 2003-07-08
  • 打赏
  • 举报
回复
abstract 修饰符可用于类、方法和属性。抽象类必须为所有接口成员提供实现。
在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。

interface 关键字声明具有抽象成员的引用类型。
接口可以是命名空间或类的成员,并且可以包含下列成员的签名:
方法、属性、索引器。

实现接口的抽象类可以将接口方法映射到抽象方法上。例如:
interface I
{
void M();
}
abstract class C: I
{
public abstract void M();
}
hillfree 2003-07-08
  • 打赏
  • 举报
回复
如果在提取出来的公用部分中需要有共有的逻辑需要实现,用abstract class.
如果没有,使用Interface。
在使用上,需要优先考虑interface.

详情,请看比较经典的OO书籍。比如《Thinking in java》
xhan2000 2003-07-08
  • 打赏
  • 举报
回复
interface比abstract更抽象

只有声明,类似c++的.h

abstract只是不能实例化
liduke 2003-07-08
  • 打赏
  • 举报
回复
车有轮子,能前进这是车类公共的功能只是汽车和自行车具体实现不同,这就是abstract
车和椅子都能坐人,但两不是同类,这种相同的功能就是interface
liduke 2003-07-08
  • 打赏
  • 举报
回复
车都有轮子,能行进等公共功能,只是汽车和自行车具体的实现不同,这就是abstract
车和椅子都能座人,但两者不是同一种类型,这种能座人的相同的功能就是interface

110,534

社区成员

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

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

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