C#抽象类与接口

一、定义

抽象类:抽象类往往用来表征对问题领域进行分析,设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体的概念的抽象,在编程语言中通常用abstract修饰的类。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。在这里插入图片描述

接口:接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须有类提供的成员或实现它的其他接口,与对象类似,接口可以包含方法,属性,索引器和事件作为成员。C#中接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个雷具有两个以上基类的方式。interface声明。
在这里插入图片描述

二、异同
相同:
1、都不能直接实例化,都可以通过继承实现其抽象方法
2、包含未实现的方法声明
3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)

不相同:
1、接口支持多继承;抽象类不能实现多继承。
2、接口只能定义行为;抽象类既可以定义行为,还可以提供实现。
3、接口可以用于支持回调(callback);抽象类不能实现回调,因为继承不支持。
4、接口只包含方法(Method)、属性(Property)、索引器(Index)、事件(Event)的签名,但不能定义字段和包含实现的方法;
抽象类可以定义字段、属性、包含有实现的方法。
5.接口可以作用于值类型(Struct)和引用类型(Class);抽象类只能作用于引用类型。

三、补充
在这里插入图片描述
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值