java接口例子[Java编程]
本文“java接口例子[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“interface”(接口)关键字使抽象的概念更深化了一层.我们可将其想象为一个“纯”抽象类.它答应成立者规定一个类的基本情势:办法名、自变量列表以及返回范例,但不规定办法主体.接口也包含了基本数据范例的数据成员,但它们都默许为static和final.接口只供应一种情势,并不供应实施的细节.
接口这样描写自己:“关于实现我的全部类,看起来都应当象我目前这个模样”.因此,采取了一个特定接口的全部代码都知道关于那个接口大概会调用什么办法.这就是接口的全部含义.所以我们常把接口用于成立类和类之间的一个“协议”.有些面向对象的程序计划语言采取了一个名为“protocol”(协议)的关键字,它做的就是与接口相同的事情.
为成立一个接口,请利用interface关键字,而不要用class.与类类似,我们可在interface关键字的前面增添一个public关键字(但只有接口定义于同名的一个文件内);大概将其省略,营造一种“友好的”状况.
为了生成与一个特定的接口(或一组接口)符合的类,要利用implements(实现)关键字.我们要表达的意思是“接口看起来就象那个模样,这儿是它具体的工作细节”.除这些之外,我们其他的工作都与担当极其类似.下面是乐器例子的表示图:
具体实现了一个接口今后,就得到了一个普通的类,可用尺度方法对其举行扩大.
可决意将一个接口中的办法声明显肯定义为“public”.但即便不明肯定义,它们也会默许为public.所以在实现一个接口的时刻,来自接口的办法必须定义成public.不然的话,它们会默许为“友好的”,并且会限制我们在担当历程中对一个办法的拜候——Java编译器不答应我们那样做.
在Instrument例子的改正版本中,大家可明确地看出这一点.注意接口中的每个办法都严峻地是一个声明,它是编译器唯一答应的.除此以外,Instrument5中没有一个办法被声明为public,但它们城市自动得到public属性.以下所示:
代码剩余的部份按相同的方法工作.我们可以安闲决意上溯造型到一个名为Instrument5的“普通”类,一个名为Instrument5的“抽象”类,大概一个名为Instrument5的“接口”.全部行为都是相同的.事实上,我们在tune()办法中可以发现没有任何证据显示Instrument5毕竟是个“普通”类、“抽象”类还是一个“接口”.这是做是成心的:每种办法都使程序员能对对象的成立与利用举行差别的掌握.//: Music5.java // Interfaces import java.util.*; interface Instrument5 { // Compile-time constant: int i = 5; // static & final // Cannot have method definitions: void play(); // Automatically public String what(); void adjust(); } class Wind5 implements Instrument5 { public void play() { System.out.println("Wind5.play()"); } public String what() { return "Wind5"; } public void adjust() {} } class Percussion5 implements Instrument5 { public void play() { System.out.println("Percussion5.play()"); } public String what() { return "Percussion5"; } public void adjust() {} } class Stringed5 implements Instrument5 { public void play() { System.out.println("Stringed5.play()"); } public String what() { return "Stringed5"; } public void adjust() {} } class Brass5 extends Wind5 { public void play() { System.out.println("Brass5.play()"); } public void adjust() { System.out.println("Brass5.adjust()"); } } class Woodwind5 extends Wind5 { public void play() { System.out.println("Woodwind5.play()"); } public String what() { return "Woodwind5"; } } public class Music5 { // Doesn't care about type, so new types // added to the system still work right: static void tune(Instrument5 i) { // ... i.play(); } static void tuneAll(Instrument5[] e) { for(int i = 0; i < e.length; i++) tune(e[i]); } public static void main(String[] args) { Instrument5[] orchestra = new Instrument5[5]; int i = 0; // Upcasting during addition to the array: orchestra[i++] = new Wind5(); orchestra[i++] = new Percussion5(); orchestra[i++] = new Stringed5(); orchestra[i++] = new Brass5(); orchestra[i++] = new Woodwind5(); tuneAll(orchestra); } } ///:~
以上是“java接口例子[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:Java的"多重承当"
- ·下一篇文章:java的抽象类和办法
- ·中查找“java接口例子”更多相关内容
- ·中查找“java接口例子”更多相关内容