7.Java抽象类和接口,基本类有什么区别

问题:Java抽象类和接口,基本类有什么区别?
抽象

概念:使用了关键字 abstract 声明的类叫做抽象类。如果一个类里包含了一个或多个抽象方法,类就必须指定(abstract)抽象。“抽象方法”属于一种不完整的方法,只含有一个声明,没有方法主体。

抽象类和具体类是相对的,并非是绝对的。抽象是一种概念性名词,具体是一种可见可触摸的现实对象。概念越小,则其抽象程度就越大,反之亦然。简单说,比如“人”比“男人”抽象一点,而“生物”又比人更抽象一点,“物质”又比“生物”更抽象。

抽象的概念是由具体概念依其“共性”而产生的,把具体概念的诸多个性排出,几钟描述其共性,就会产生一个抽象的概念。抽象思维,是人类思维达到高级阶段产生的一种能力,例如,当小孩子思维上不成熟时,它们只能掌握具体概念,它们学习代词“你、我、他”时往往遇到困难,因此代词具有较高的抽象性。
总之,抽象概念的外延大,内涵小,具体概念的外延小,内涵大。

由于从某种角度讲,接口是一种特殊的抽象类,它们之间渊源颇深,有很大的相似之处。所以总的说,类是对象的模板,抽象类和接口是具体类的模板。

(1)抽象类和普通类

a).普通类可以实例化调用;抽象类不能被实例化,因为它是存在于一种概念而不是具体。
b).普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非自己本身也是抽象类。

(2)抽象类和接口

接口是动作的抽象,抽象类是对本质的抽象
a).抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……)它们抽象的是人。说明,它们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。所以,在高级语言上,一个类只能继承一个类(抽象类),但是可以实现多个接口。(吃饭接口、走路接口)。

b).使用
①.抽象类 和接口都是用来抽象具体对象的,但是接口的抽象级别最高
②抽象类可以由具体的方法,变量,接口没有具体的方法,可以由变量(变量默认是 public static final)
③.抽象类主要用来抽象类别,接口主要用来抽象功能
④.抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。
⑤.接口是设计的结果,抽象类是重构的结果。

c).使用方向:当你关注一个事物本质的时候,用抽象类;当你关注一个操作的时候,用接口

(参考博客http://blog.csdn.net/csdn_aiyang/article/details/71171886

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 你很清楚的知道什么时候用抽象类,什么时候用接口么?p.s. 多文字预警! 1 抽象类和接口简介 1.1 抽象类 ...
    Sharember阅读 2,431评论 9 55
  • php在5.5版本中新增了password_hash、password_verify两个密码散列函数。 通过pas...
    George2016阅读 1,451评论 0 2
  • 新网络-为你的事业进行群体思维 应该昨天完成的笔记,但是太忙了,所以拖到现在完成。 这是我很喜欢的一个章节,非常有...
    J女王阅读 294评论 0 0
  • 从上周五知道要去体检到今天早上体检完,心里一直有一种情绪在酝酿着,背后是对自己身体的一种隐隐的担心和愧疚。17年,...
    玉露君阅读 215评论 1 3

友情链接更多精彩内容