C#中,抽象类和接口有哪些区别

区别有:1、定义不同;2、功能不同;3、实现方式不同;4、接口污染;5、注意事项不同。类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类。而接口只是一个行为的规范或规定,微软的自定义接口总是后带able字段。

C#中,抽象类和接口有哪些区别-Worktile社区

1、定义不同

类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类。而接口只是一个行为的规范或规定,微软的自定义接口总是后带able字段,证明其是表述一类类“我能做。。。”。抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中.

2、功能不同

接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法;一个类一次可以实现若干个接口,但是只能扩展一个父类,接口可以用于支持回调,而继承并不具备这个特点。抽象类不能被密封。

3、实现方式不同

抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的.

(接口)与非抽象类类似,抽象类也必须为在该类的基类列表中列出的接口的所有成员提供它自己的实现。但是,允许抽象类将接口方法映射到抽象方法上。

抽象类实现了oop中的一个原则,把可变的与不可变的分离。抽象类和接口就是定义为不可变的,而把可变的座位子类去实现。

如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法.

4、接口污染

好的接口定义应该是具有专一功能性的,而不是多功能的,否则造成接口污染。如果一个类只是实现了这个接口的中一个功能,而不得不去实现接口中的其他方法,就叫接口污染。

5、注意事项不同

尽量避免使用继承来实现组建功能,而是使用黑箱复用,即对象组合。因为继承的层次增多,造成最直接的后果就是当你调用这个类群中某一类,就必须把他们全部加载到栈中!后果可想而知.(结合堆栈原理理解)。同时,有心的朋友可以留意到微软在构建一个类时,很多时候用到了对象组合的方法。比如asp.net中,Page类,有Server Request等属性,但其实他们都是某个类的对象。使用Page类的这个对象来调用另外的类的方法和属性,这个是非常基本的一个设计原则。

延伸阅读:

什么是C#?

C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的优选语言。

文章标题:C#中,抽象类和接口有哪些区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38568

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月16日 下午11:28
下一篇 2023年2月17日 上午2:18

相关推荐

  • 项目管理用的软件有哪些

    项目管理用的软件有:一、PingCode;二、Worktile;三、Asana;四、Trello;五、Wrike。PingCode是国内软件研发项目管理软件。功能以及解决的问题有:能够支持看板、敏捷等多种项目的管理;管理团队目标,监控单/多项目的进度、管理计划分配资源。 一、PingCode Pin…

    2023年4月29日
    3200
  • 电路图用什么软件画比较好

    画电路图的软件:1、Protel;2、AUTOCAD;3、proteus;4、visio;5、CAXA;6、Allegro;7、Multisim;8、KiCad。Protel是个完整的板级全方位电子设计系统,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计等功能。 1、Pr…

    2023年4月4日
    1.1K00
  • 任务跟踪工具有哪些

    任务跟踪工具有:一、PingCode;二、Worktile;三、Taiga;四、OmniPlan;五、MeisterTask;六、Jira。PingCode的优势在于它是一款覆盖研发全生命周期的项目管理系统,被广泛用于需求收集、需求管理、需求优先级、产品路线图、项目管理、测试管理、缺陷追踪、文档管理…

    2023年4月16日
    8000
  • BIOS设置里BOOT MODE:Legacy跟UEFI区别

    区别是:UEFI是新式的BIOS,UEFI是一种新的主板引导初始化的标注设置,UEFI启动方式要用GPT磁盘格式,快速启动是可以提高开机后操作系统的启动速度。Legacy是传统BIOS,Legacy的启动方式要用MBR磁盘格式。当BIOS激活时会先去确认CMOS中的资料是否正确。

    2023年2月14日
    86500
  • 开发不同类型的App需要用到哪些技术

    开发不同类型的App需要用到哪些技术:1、原生app开发;2、混合app开发;3、web app开发;4、saas一站式免编程开发。原生app开发是基于手机系统进行的原生代码编写。用的是官方提供的开发平台和编程语言。 一、原生app开发 原生app开发是基于手机系统进行的原生代码编写。用的是官方提供…

    2023年5月10日
    2600
  • 路线图用什么软件做

    路线图制作软件有:1、Microsoft PowerPoint;2、MindManager;3、Lucidchart;4、Canva;5、Draw.io。PowerPoint 具有功能强大、易学易用等特点,可以用来制作各种类型的路线图。 1、Microsoft PowerPoint PowerPoi…

    2023年3月3日
    87300
  • 专用网络和公用网络区别

    专用网络与公用网络的区别体现在:1.访问权限不同;2.管理方式不同;3.网络安全性不同;4.数据传输速度不同;5.成本投入不同。总的来说,专用网络相对封闭,主要用于满足特定组织的内部通信需求,而公用网络开放性较大,适用于公共信息的传播和共享。 1.访问权限不同 专用网络,又称为私有网络,通常仅供特定…

    2023年5月18日
    2.7K00
  • DevOps与自动化部署工具的对比

    DevOps与自动化部署工具的核心差异在于目标、范围和实现方式。1、目标:DevOps关注于文化和流程改善,而自动化部署工具则更侧重于技术实现。2、范围:DevOps是一种全面的方法论,覆盖软件交付周期的多个方面,而自动化部署工具通常是DevOps流程中的一个环节。3、实现方式:DevOps通常需要…

    2023年9月13日
    2900
  • 流程管理的好处与难点是什么

    流程管理的好处是:1.留住人才;2.加速企业成长;3.解放全体员工;4.提升工作效率;5.实现规范化管理;6.提高组织协同力。流程管理的难点是:1.企业领导不重视;2.产业环境变化快;3.内外部资源流动快;4.业务人员参与不足;5.标准化基础管理薄弱。

    2022年11月13日
    1.0K00
  • 国产办公软件有哪些

    国产办公软件有:1、PingCode;2、Worktile;3、XMind;4、WPS Office;5、坚果云;6、石墨文档;7、Canva;8、转转大师。PingCode是国内软件研发项目榜单中评分较高的项目管理软件。2022年被选入国内年度口碑产品 TOP 36。适用于十几人到千人规模的的团队…

    2023年4月9日
    85500

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部