当前位置:  编程技术>java/j2ee

Java接口和抽象类的区别深入剖析

    来源: 互联网  发布时间:2014-11-06

    本文导语:  本文剖析了Java学习中接口和抽象类的区别,对于初学者深入学习并准确掌握Java程序设计的理念至关重要。详情如下: Java初学者往往容易提出这样的问题:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么? ...

本文剖析了Java学习中接口和抽象类的区别,对于初学者深入学习并准确掌握Java程序设计的理念至关重要。详情如下:

Java初学者往往容易提出这样的问题:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?

接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。

人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

第一点.接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。

第二点.接口可以继承,抽象类不行(注:此处原作者写错了,抽象类可以被继承,如果子类全部实现抽象类中的方法,则子类不是抽象类;反之,有一个没有被实现,则子类也是抽象类)

第三点.接口定义方法,不能实现,而抽象类可以实现部分方法。

第四点.接口中基本数据类型为static 而抽类象不是的。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

抽象类的功能要远超过接口,但是,定义抽象类的代价高。因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。


    
 
 

您可能感兴趣的文章:

  • Java和.NET剖析工具 YourKit
  • Java程序剖析工具 JIP
  • Java剖析工具 JProfiler
  • java string的一些细节剖析
  • java自动装箱拆箱深入剖析
  • java命名空间javax.script接口invocable的类成员方法: getinterface定义及介绍
  • java的API中有没有既实现了Map接口又实现了List接口的类?
  • java命名空间javax.lang.model.element接口typeelement的类成员方法: getinterfaces定义及介绍
  • ImageMagick的Java 接口 im4java
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getmanagementspecversion定义及介绍
  • 【请教】java中接口问题
  • java命名空间java.beans.beancontext接口beancontextproxy的类成员方法: getbeancontextproxy定义及介绍
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • java命名空间javax.print接口uriexception的类成员方法: getreason定义及介绍
  • 在java中接口与抽象类在使用中有多大的区别
  • java命名空间javax.swing.text接口caret的类成员方法: install定义及介绍
  • SVN的Java接口 svnClientAdapter
  • java命名空间javax.swing接口rootpanecontainer的类成员方法: getrootpane定义及介绍
  • ImageMagick的Java接口 JMagick
  • java命名空间javax.swing.text接口highlighter的类成员方法: install定义及介绍
  • Java与Microsoft Office的接口问题
  • java命名空间java.lang.reflect接口parameterizedtype的类成员方法: getrawtype定义及介绍
  • java与C++的通信接口是什么阿?
  • java命名空间javax.management接口descriptorread的类成员方法: getdescriptor定义及介绍
  • 亚马逊Web服务的Java接口 Typica
  • java命名空间java.sql接口wrapper的类成员方法: unwrap定义及介绍
  • Java邮件接口 JavaMail
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想深入学习Java应该学习哪些东西
  • 深入理解Java对象实例生成的例子
  • java父类和子类初始化顺序的深入理解
  • 深入分析Java内存区域的使用详解
  • 基于Java Tomcat和激活MyEclips的深入理解
  • java/word+fusionchart生成图表深入分析
  • 深入理解:Java是类型安全的语言,而C++是非类型安全的语言
  • 深入JAVA对象深度克隆的详解
  • 深入Java不可变类型的详解
  • 深入java对象复制的分析
  • 深入探讨java的接口和抽象的内涵!
  • 基于Java实现缓存Cache的深入分析
  • java加密枝术深入理解
  • 深入探讨java的接口和抽象的内涵!(续上贴,上贴分已给)
  • 基于Java protected的深入理解
  • 深入Ajax代理的Java Servlet的实现详解
  • 虚函数与纯虚函数(C++与Java虚函数的区别)的深入分析
  • 一个头疼的问题,请对java多态性有深入了解的高手给予关注
  • 深入解析java中的locale
  • java 静态代理 动态代理深入学习
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3