码迷,mamicode.com
首页 > 其他好文 > 详细

接口与抽象类区别

时间:2018-02-23 14:47:37      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:like   info   private   img   一个   抽象类   信息   ima   bubuko   

抽象类:往往用来表征我们对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但本质上相同的具体概念的抽象。(面向对象的概念中,所有的对象都是通过类来描绘的。但是,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类)

作用:主要用来进行类型隐藏。

接口的定义跟抽象类相似,也可以说接口就是一个特殊的抽象类。

它们的区别:

1、abstract class在C#中表示的是一种继承关系,一个类只能使用一次继承关系。但是一个类却可以实现多个interface。

2、在abstract class中可以有自己的数据成员,也可以有非abstract的成员方法,而在interface中,可以定义方法、属性、索引和事件,所有的成员方法都是abstract的。

3、abstract class和interface所反映出的设计理念不同。其实abstract class表示的是‘is-a’关系,interface表示的是‘like-a’。

4、实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中不能有实现方法。

5、抽象类中的变量默认是private型,其值可以在子类中重新定义,也可以重新赋值。

6、接口中的方法默认都是public,abstract类型的,并且不允许成员加任何访问修饰符。

 

abstract class 成员的默认访问修饰是什么:

技术分享图片

技术分享图片

很明显,方法默认的修饰是private,可以根据需要加访问修饰符。

 

一笔带过:委托跟接口的区别就是,委托只能包含属性,索引,方法,而不能包含事件。

 

 

 

接口与抽象类区别

标签:like   info   private   img   一个   抽象类   信息   ima   bubuko   

原文地址:https://www.cnblogs.com/Vam8023/p/8461714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!