接口跟抽象类的区别与联系
相同点
1.首先接口跟抽象类都是引用类型,本身的地址都在堆上,里面的值在栈上。
2.其次接口跟抽象类都是起到契约约束的作用,是对相同的某些内容进行了契约规定。
3.再者接口跟抽象类都可以对 方法、事件、属性 进行契约定义。
不同点
1.抽象类强调的是一种类的契约规范,is a ,强调是什么;而接口强调的是具备什么功能,强调具备什么能力的汇总集合。
2.抽象类可以约束 类型(委托)、字段;接口无法声明 类型(委托)、字段。
3.抽象类只能单继承,继承后抽象类后,对于属性执行继承,对于方法增需要重写;
接口可以多继承,继承接口后,需要实现相应的接口的内容。
4.接口中的 方法、事件、属性 不需要修饰符;抽象类中的方法、事件、属性不需要修饰符。
/*----------------------------------------------------------------
* 作 者 :姜 彦
* 项目名称 :Learn
* 类 名 称 :interface
* 命名空间 :Learn
* CLR 版本 :4.0.30319.42000
* 创建时间 :2019/2/21 12:55:04
* 当前版本 :1.0.0.1
* My Email :jiangyan2008.521@gmail.com
* jiangyan2008.521@qq.com
* 描述说明: 接口与抽象类的区别很联系
*
* 修改历史:
*
*******************************************************************
* Copyright @ JiangYan 2019. All rights reserved.
*******************************************************************
------------------------------------------------------------------*/
using System;
namespace Decorator
{
public enum AllTestType:int { Normal=0, Err=1, } public delegate void OnExceptionedEventHandler(object sender,EventArgs e); interface IContent { int Add(int a, int b); event OnExceptionedEventHandler OnExceptioned; string Age { get; set; } AllTestType TestType { get; set; } /* * 接口无法声明类型:委托 * 接口不能包含字段:静态、动态、常量、字符串、整型、枚举等等 * 接口中的方法、事件、属性不需要修饰符 */ //接口无法声明类型:委托 //delegate void OnConnectedEventHandler(); //接口不能包含字段 //const uint SENSOR_RT = 0x64010101; //接口不能包含字段 //string Name; //接口不能包含字段 //AllTestType _TestType; //接口不能包含字段 //static int TotalCount = 100; } abstract class AbstractContent { public abstract int Add(int a, int b); public event OnExceptionedEventHandler OnExceptioned; public abstract Delegate GetDelegate(); public string Age { get; set; } public AllTestType TestType { get; set; } /* * 抽象类可以声明类型:委托 * 抽象类能够包含字段:静态、动态、常量、字符串、整型、枚举等等 * 抽象类中的方法、事件、属性不需要修饰符 */ public delegate void OnConnectedEventHandler(); public const uint SENSOR_RT = 0x64010101; public string Name; public AllTestType _TestType; public static int TotalCount = 100; }
}
![](https://files-cdn.cnblogs.com/files/jiangyan219/Alipay.bmp)
您的资助是我最大的动力!
金额随意,欢迎来赏!
![](https://files-cdn.cnblogs.com/files/jiangyan219/WeChat.bmp)
我写的东西能让你能懂,那是义务
毕竟占用了你生命中的宝贵的时间和注意力
要是你还能喜欢我的作品,那就是缘分了
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【青青子衿】!