浅析Java抽象类与接口的区别.doc

浅析Java抽象类与接口的区别.doc

ID:50863740

大小:67.50 KB

页数:4页

时间:2020-03-15

浅析Java抽象类与接口的区别.doc_第1页
浅析Java抽象类与接口的区别.doc_第2页
浅析Java抽象类与接口的区别.doc_第3页
浅析Java抽象类与接口的区别.doc_第4页
资源描述:

《浅析Java抽象类与接口的区别.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅析Java抽象类与接口的区另!]曾裕宗广东南华工商职业学院摘要:抽彖是JdVd语言的一种很重要的特性,可以通过两种形式来体现:abstractclass(抽象类)和interface(接口)。两者之间有很大的相似性,但也存在不一样的地方,该文结合笔者多年JewEi开发和教学经验,先分别阐述抽象类、接口,接着剖析两者之间的区别,然后给出一个案例来说明,最后做出总结。关键词:抽象类;接口;继承;实现;区别;收稿日期:2017-10-20基金:广东南华工商职业学院院级课题阶段性成果(大数据关键技术及其在课程相关分析中的应用17K06)Received:2017-10-20抽象是任何一门面向对

2、象编程语言的一种相当重要的特性,Java亦如此。JavaOOP的抽象包含两种:abstractclass(抽象类)和interface(接口)。从某种意义上讲,正是因为有了这两种抽象机制,J8VE1才具备强大的面向对象能力。它们两者之间有很大的相似性,在编程的时候,有时可以相互替换实现,但肯定也存在不一样的地方,否则Ja阳就没必要搞两个概念机制了。本文结合笔者多年Java开发和教学经验,来剖析、阐述两者之间的区别,试图给众多Java初学者提供一些借鉴和参考。首先,我们來讲抽象类。简单来说,包含抽象方法的类就叫抽象类。这里所说的抽象方法,是指只有方法头部,即方法名称,但没有最重要的方法实现

3、的语句体,其定义格式为:从定义中,我们看出:抽彖类所包含的方法,可以是抽象方法,也可以是普通的实现方法,另外,抽象类也可以拥有成员变量(屈性)。当然,它跟普通类还是有以下的区别:1)抽象类,其修饰符必须为public或者protected,不能是private,因为创建抽象类,就是要被其他类继承,用private修饰了,则不能被子类继承,子类便无法实现该方法。2)抽象类不能用来创建对象,即抽象类不能被直接实例化,要通过其普通子类进行实例化。3)如果一个普通子类继承于一个抽象父类,则该类一定要重写实现该父类的抽象方法。如果该子类仍然是一个抽象类,这也是允许的,就不必重写实现该父类的抽象方法

4、,但必须用abstract修饰。接着,我们来讲接口。接口,也可以认为是一种特殊的抽象类,当然,它本质上不是类,它是一些方法特征的集合,但不可以有方法的实现。接口全部是由全局变量和公共的抽象方法组成,接口中的所有方法都是抽象方法,而且其修饰符必须是public类型,其定义格式为:publiciinterfaceiinterfaceName{全局变量抽象方法从定义中,我们看出:接口可以有全局成员变量,是一种超级抽象的类型,它比抽象类更加“抽象”。显然,我们不能直接通过接口來创建对象,而是要创建普通类,先实现接口,再通过普通类来创建对象,其语法定义:class类名implements接口1,接

5、口2,[....]{语句体(一般是重写方法);从定义中,我们看出:普通类可以实现多个接口,再就是,如果是普通类实现接口,那么必须重写实现接口中的所有方法;如果实现接口的还是抽象类,则可以不必重写实现接口中的所有方法,还可以有自己的方法。讲完了抽象类和接口,我们重点来论述两者之间的区别,总体来说,有两大方面的区别:1定义的语法不同举个例子:publicabstractclassAnimal{//关键词abstract,声明该类为抽象类从定义中,我们看出:两者的关键词不同,抽彖类是abstractclass,而接口是Interface;抽象类可以有成员变量数据,也可以具有非抽象方法,但是接口

6、则不同,它方法外只能定义的是常量(一般情况下不定义),而且它所有的方法都必须是抽象的。可以这么理解,接口是特殊的抽彖类。子类只能继承一个父类或抽象类,但是它却可以实现多个接口,这叫子类的单继承、多实现。2设计理念层次不一样1)抽彖级别不一样,抽彖类是对整体类的抽彖,包含属性和方法;而接口是对其中方法的抽象,即一般只是对其方法进行抽象。2)实现类的范围不同,抽象类,其实是从子类中提取共性部分,然后抽象出来,反之,子类继承该父类就可以了,也就是说里面的抽象方法一般来自同一个类别,而接口却可以跨越不同的类,实现它的子类可以不存在任何关系和共同之处,即接口中定义的抽象方法,在被不同的普通类实现时

7、,即重写其抽象方法时,可以具有完全不同的行为,即语句体可以完全不同。举个例子,老虎、牛这些动物,来自同一类别,可以抽象成一个动物类,都有睡的行为;鸟、飞机都能飞,可以有Fly接口,但是,显然它们是没有共同父类的?所以,只能用接口写。也就是说,抽象类反映的是一种继承关系,父类和子类之间必须存在,zis-a/z关系,而接口则不同,其同样的方法,在不同的地方,可以实现完全不一样的行为,体现的是〃like-『关系。3)设计方式不同,抽彖类是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。