java中抽象类与接口的比较.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java中抽象类与接口的比较 摘要:在Java语言中,抽象类(abstract class)和接口 (interface) 是支持抽象类定义的两种机制。 正是由于这两种机 制的存在,才赋予了 Java强大的面向对对象的功能。抽象类 和接口之间存在着很多相似性 ,但是又有本质的区别。 对于初 学者而言 ,在使用时很难界定到底采用者两种机制的哪一种。 本文具体分析了这两个概念的相同点和相异处。 关键词:Java;类;继承;抽象类;接口 中图分类号 :TP312 文献标识码 :A 文章编号 :1007-9599 (2010) 11-0000-02 The Comparison of Abstract Classes and Interfaces in Java Wang Lili (Foundation Department of Xuzhou Air Force College,Xuzhou221000,China) Abstract:In the Java language,the abstract class (abstract class) and interface (interface) is to support two mechanisms defined abstract class. It is because the existence of these two mechanisms,it gives the object-oriented Java powerful features.Between abstract classes and interfaces there are many similarities,but there are essential differences. For starters,very difficult to define in the end when in use which of those two mechanisms.This detailed analysis the same point and the differences about these two concepts. Keywords:Java;Class;Inheritance;Abstract class;Interface 一、抽象类 在 Java 程序设计中有时需要创建超类 ,该超类只定义了 一个为所有子类共享的一般形式 ,至于细节则交给每一个子 类去实现。 这种超类没有任何具体的实例 ,只具有一些抽象的 概念 ,这样的类称为抽象类。在面向对象的概念中 ,所有的对 象都是通过类来描述的。 但是 ,并不是所有的类都是用来描绘 对象的。如果一个类中没有包含足够多的信息来描述一个具 体的对象 ,这样的类就是抽象类。 抽象类往往用来表征在对问 题领域进行分析、 设计时得出的抽象概念 ,是对一系列看上去 不同 ,但是本质上相同的具体概念的抽象。 抽象类就是包含一个抽象方法的类 ,抽象方法就是一个 只有声明而没有实现的方法。抽象类与普通类之间的差别就 只在两处 :一是比普通类的定义中多出一个抽象方法 ,普通类 的所有定义在抽象类中都可以使用。二是在类的声明处需要 用 abstract 声明为抽象类 ,如 :abstractclass 类名 {}; 抽象方法也 必须用 abstract 来声明 ,如 abstract public 返回类型 方法名 () 判断一个类是否是抽象类 ,关键在于确定该类是否包含一个 或多个抽象方法 ,无论该抽象方法时本身具有的还是从别的 类继承过来的。 抽象类不能使用关键字 final 声明 ,因为被关键字 final 声明的类不能有子类 ,而抽象类必须被子类继承。 抽象类中允许有构造方法 ,但是此构造方法是不能直接 调用的 ,是交给子类去调用 ,子类对象的实例化过程中 ,永远是 先调用父类中的构造方法实例化父类中的属性 ,再实例化本 类中的属性。 抽象类中的属性如果要想初始化 ,则肯定还是依 赖于构造方法。 从对象多态性的概念上来看 ,子类为父类实例化是一个 比较容易的操作 ,因为可以发生自动的向上转型关系 ,那么调 用的方法永远是被子类覆写过的方法。此时就可以利用此概 念通过对象多态性为抽象类实例化。 二、接口 接口为符合要求的类提供了一套规范。在接口中的方 法只有方法的声明没有方法体。对于实现接口的类必须实现 接口中的所有方法。 在实际应用中 ,可以将不同类型的类放入 不同的接口中 ,以方便对项目管理。 Java 允许一个类实现多个 接口,以达到Java中的多继承的效果。 接口与抽象类相比 ,其抽象的程度又深了一层。在接口 中的所有方法都没有方法体 , 不提供具体的

文档评论(0)

dajiede + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档