您的位置:首页 > 其它

接口和抽象类区别

2015-10-23 15:58 274 查看
  以前自己一直分不清抽象类和接口的区别,当然语法上的区别看了语法大家都懂,但是在真正使用的时候,你可以确定使用接口还是抽象类么?个人觉得这由一下几个方面决定:

  ①面向对象思想(对事物的认知和分类)

  ②站在思想的层面上区分接口和抽象类(本质)

  ③业务上的续需求

  首先来说第一点,面向对象的思想(对事物的认知和分类)。就比如说:奥迪,你认为它是一辆汽车;波音飞机,你认为它是一架飞机;如果现在有一辆像龙珠里面的那种会飞的车,就叫飞车吧。那你认为它是数据汽车还是飞机呢?其实这并没有确切的答案,根据具体业务,对业务或者架构上更加方便就怎么分,不同的分类可能就会得出不同的结果。(具体代码例子再补上)

  然后是第二点,要从本质上区别接口和抽象类。抽象类是属于类,是对同一类事物的抽象,它侧重的是属性,“a 属于 A”的概念。而接口是对行为的抽象,并非是要属于同一类事物,就像人会动,汽车也会动,则可以把“动”抽象出来作为接口,是“A 可以 a行为”的概念。(具体代码例子再补上)

  最后是第三点,业务上的需求,这一点其实并非是接口和抽象类的区别,只是用于在实践中辅助决定使用接口还是使用抽象类。接口是相对固定不变的,而抽象类是可多变的的。(具体代码例子再补上)

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: