接口类型是否继承于System.Object的讨论?

由于最近比较忙,好久没有来这里写东西了,以后会常常来这里记录一些自己的心得和体会的。

看到标题可能很多人也会比较疑惑,认为这个根本没有必要讨论,而且认为这个问题也比较无聊。

实际上我也是今天才注意到这个问题的,不知道大家想过这个问题没有?

我一开始遇到这个问题是一个初学编程的同行提出的,他的想法是借口类型似乎应该继承于System.Object,毕竟System.Object是所有.NET中所有类型的根类型。

实际上仔细考虑一下以上看法就占不住脚 ,从接口的定义就可以看出这一点:接口是描述可属于任何类或结构的一组相关行为。

这个概念的意思是接口只是关于一组行为的抽象描述,本身并不包括这些行为的实现,如果他继承与任何实体的类型,那接口就包括具体的一些实现了,也就是说假如借口继承于System.Object,那么每个借口就应该包括了System.Object中的GetHashCode(),GetType(),ToString()等方法的实现了,这和接口的定义存在矛盾,也不符合接口的设计理念。

说了这么多就是想给初学者提个醒,编程这门技术有时是需要多加思考的,仔细思考一些事情背后的原理,这样才能更快的提高自己的水平。

结论:实际上接口类型并不继承也任何System.Object的派生类,也不继承于System.Object

转载于:https://www.cnblogs.com/xuefeng1982/archive/2009/02/12/1388975.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值