首页 Java中的接口 小论文

Java中的接口 小论文

举报
开通vip

Java中的接口 小论文Java中的接口 摘要:在软件的生产过程中,一直都希望它可以像硬件产品一样,具有面向组件、接口似得开发特点。所以,在面向对象程序设计语言中,引入了抽象编程的概念。在java语言中,接口是实现抽象编程的关键技术,本文将从接口的概述、接口的定义、接口的实现及接口与抽象类间的关系等方面论述java中的接口。 关键字:java接口 方法特征 方法的实现 抽象类 引言:java中的接口是一种与类相似的结构,只包含常量和抽象方法。它指明了多个对象的共同行为,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些...

Java中的接口 小论文
Java中的接口 摘要:在软件的生产过程中,一直都希望它可以像硬件产品一样,具有面向组件、接口似得开发特点。所以,在面向对象程序设计语言中,引入了抽象编程的概念。在java语言中,接口是实现抽象编程的关键技术,本文将从接口的概述、接口的定义、接口的实现及接口与抽象类间的关系等方面论述java中的接口。 关键字:java接口 方法特征 方法的实现 抽象类 引言:java中的接口是一种与类相似的结构,只包含常量和抽象方法。它指明了多个对象的共同行为,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现。接口可以看做是一种特殊的抽象类,两者有许多相同之处,也有许多不同之处。 一、接口的概述 Java中的接口可以看做是一种特殊的抽象类,其中包含的所有的方法都是抽象方法, 所有的数据域均是常量。接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 二、接口的定义 在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。像常规类一样,每个接口都被编译为独立的字节码文件。与抽象类相似,不能使用new操作符创建接口的实例,但多数情况下,使用接口或多或少有点像使用抽象类。 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现(implements)多个接口,间接的实现了多继承。Java接口的方法只能是abstract的和public的,Java接口的成员可以有public,static和final属性,必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)。下面是一个接口的例子: public interface A { int CONST = 1; //合法,CONST默认为public,static,final类型 void method(); //合法,method()默认为public,abstract类型 public abstract void method2(); //method2()显示声明为public,abstract类型 } 三、接口的实现 接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。 下面是一个接口的例子: // InterfaceTest.java import java.util.Scanner; interface Soundable { public void increaseVolume( ); public void decreaseVolume( ); public void stopSound( ); public void playSound( ); } class Radio implements Soundable { public void increaseVolume( ) { System.out.println("增大收音机音量"); } public void decreaseVolume( ) { System.out.println("减小收音机音量"); } public void stopSound( ) { System.out.println("关闭收音机"); } public void playSound( ) { System.out.println("收音机播放广播"); } } class Walkman implements Soundable { public void increaseVolume( ) { System.out.println("增大随声听音量"); } public void decreaseVolume( ) { System.out.println(“输出减小随声听音量”); // 输出减小随声听音量 } public void stopSound( ) { System.out.println("关闭随声听"); } public void playSound( ) { System.out.println("随声听发出音乐"); } } class Mobilephone implements Soundable { public void increaseVolume( ) { System.out.println("增大手机音量"); } public void decreaseVolume( ) { System.out.println("减小手机音量"); } public void stopSound( ) { System.out.println("关闭手机"); } public void playSound( ) { System.out.println("手机发出来电铃声"); } } class People { private String name; private int age; public void listen(Soundable s) { s.playSound( ); } } public class InterfaceTest { public static void main(String[] args) { int i; People sportsman = new People( ); Scanner scanner = new Scanner(System.in); Soundable[] soundDevice = new Soundable[3]; //往声音设备数组中放入能发声的设备 soundDevice[0] = new Radio( ); soundDevice[1] = new Walkman( ); soundDevice[2] = new Mobilephone(); //创建手机对象并赋值给soundDevice[2] System.out.println("你想听什么? 请输入选择:0-收音机 1-随声听 2-手机"); i = scanner.nextInt( ); //开始听声音 sportsman.listen(soundDevice[i]); soundDevice[i].increaseVolume( ); soundDevice[i].stopSound(); //调用stopSound( )方法 } } 当一个类实现接口时,该类实现了定义在接口中的所有带确切签名和返回类型的方法。Plane类实现了runTimer方法。如果要为程序增加一个闹钟类 Clock, 该类也实现 Soundable 接口 , 能够发出滴答声 , 只需将 Clock 类加入到 InterfaceTest.java 程序中 ,在Clock 类中加入public void increaseVolume(){}和public void decreaseVolume(){}两个实现, 并在 InterfaceTest 类的 main() 方法中加入 SoundDevice[3] new Clock(); 语句即可。 四、比较抽象类与接口 (一)、相同点 1、抽象类与接口都位于继承树的上层,代表系统的抽象层,当一个系统使用一颗继承树上的类时,应该尽量把引用变量声明为继承树的上层抽象类型,这样可以提高两个系统之间的送耦合 2、 都不能被实例化 3、 都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现 (二)、不同点 1、 在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这是抽象类的优势,但这一优势限制了多继承,而接口中只能包含抽象方法.由于在抽象类中允许加入具体方法,因此扩展抽象类的功能,即向抽象类中添加具体方法,不会对它的子类造成影响,而对于接口,一旦接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类,这些实现类要么实现新增的抽象方法,要么声明为抽象类 2、 一个类只能继承一个直接的父类,这个父类可能是抽象类,但一个类可以实现多个接口,这是接口的优势,但这一优势是以不允许为任何方法提供实现作为代价的。在语法层面,Java语言对于abstract class和interface给出了不同的定义方式,下面以定义一个名为Demo的抽象类为例来说明这种不同。 使用interface的方式定义Demo抽象类的方式如下: interface Demo { void method1(); void method2(); … } 在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract class。 结论:接口作为开发的约定,其作用是多方面的。Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承,弥补了java中的不足。在程序设计中,适当使用接口可以得软件系统的灵活性和可扩展性都有提高。所以接口具有极其重大的意义。 参考网址和文献 http://wenku.baidu.com/view/c8dd0f0c844769eae009ed0a.html http://baike.baidu.com/view/993516.htm http://wenku.baidu.com/view/91e7841aff00bed5b9f31d38.html http://zhidao.baidu.com/question/67371558.html http://www.doc88.com/p-70883726574.html
本文档为【Java中的接口 小论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_463795
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:4
分类:互联网
上传时间:2013-10-20
浏览量:25