• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

[C#进阶笔记]_002_接口和抽象类

C# OceanCoder 2017-08-18 2961 次浏览 0个评论

接口和抽象类在很多方面都比较相似,本文来比较它们的相似及不同之处,搞清楚它们应该在哪些情况下使用。

接口和抽象类的相似之处

1、它们都包含可以由派生类继承的成员

2、它们都不可以直接实例化(虽然不能实例化,但我们可以声明它们的变量)

接口和抽象类的不同之处

1、派生类只能继承一个抽象类;但可以使用多个接口

2、抽象类可以拥有抽象成员(没有方法体,方法的实现必须在派生类中完成,否则派生类本身也必须是抽象的)和非抽象成员(有方法体,但也可以定义成虚函数virtual以便在派生类中重写override);接口成员没有方法的实现,只能在使用接口的类上实现

3、抽象类的成员可以是私有的、受保护的、内部的;接口的成员是公共的(因为接口的目的就是供外部使用)

4、接口不能包含构造函数、析构函数、静态成员或变量

使用场合

抽象类主要用于对象系列的基类,这些对象都拥有某些特性;接口则主要用于类,这些类存在根本性的区别,但是仍然可以完成某些相同的任务。



已有 2961 位网友参与,快来吐槽:

发表评论