java接口

java接口
java接口

java接口

l 【定义】Java中,能够完成特定功能的,由若干属性和方法组织成的,相对独立的属性和方法的集合。

l 【用途】实现类的多继承,以解决Java只能单继承,不支持多继承的问题。

l 【特点】

用关键字interface定义接口,通过关键字implements来实现接口;

接口具有公共性(public)、静态性(static)和最终性(final)。所以修饰符只能是public,里面只能定义常量

实现多接口的类必须符合3个原则:能为所有的接口提供实现的功能,

能遵循重写的所有规则,

能保持相同的返回的数据类型。

接口的”继承”与类之间的继承不同,”继承”该接口的类,需要”自力更生”,去实现接口中的抽象方法,因此接口也相当于一个特殊的抽象类。

接口相当于程序开发的一组协议,需要此功能的类均可”继承”该方法和集合。

接口中的属性都是静态常量,方法都是抽象方法(即没有给出方法具体定义),一个类实现接口后,将继承接口中的所有静态常量。

实现接口中的抽象方法时,方法头必须与接口定义中的方法头完全相同(包括访问控制修饰符、返回值类型、参数列表等)(例外:可去掉关键abstract、接口定义时public可缺省,但是实现时不可缺)

l 【范例】

定义接口格式:

[public]interface 接口名称[extends父接口名列表]

{

//静态常量

[public] [static] [final] 数据类型变量名=常量值;

//抽象方法

[public] [abstract] [native] 返回值类型方法名(参数列表);

}

实现接口格式:

[修饰符] class 类名[extends 父类名] [implements 接口A,接口B,···]

{

类成员变量和成员方法;

为接口A中的所有方法编写方法体,实现接口A;

为接口B中的所有方法编写方法体,实现接口B;

}

实例:

本例定义接口AreaInterface,其中有静态常量pai和求面积的抽象方法area()。类Circle和类Rectangle实现了AreaInterface接口,即为接口中的抽象方法area()编写了满足各自要求的方法体,分别求圆形和长方形的面积。

程序:AreaInterface.java

packagejiekou;

publicinterfaceAreaInterface{

doublepai=Math.PI;

doublearea();

}

程序:Circle.java

packagejiekou;

publicclassCircleimplementsAreaInterface{

doubler;

publicCircle(doublex){r=x;}

//实现接口中的抽象方法,求圆面积

publicdoublearea(){

returnpai*r*r;

}

publicStringtoString(){

return"圆:r="+r+"\tarea="+area();

}

}

程序:Rectangle.java

packagejiekou;

publicclassRectangleimplementsAreaInterface{

doublex,y;

publicRectangle(doublea,doubleb){

x=a;

y=b;

}

publicdoublearea()//实现接口中的抽象方法,求长方形面积

{

returnx*y;

}

publicStringtoString()

{

return"长方形:x="+x+";y="+y+"\t area="+area();

}

}

Java 接口与类之间继承例题

1,定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。 2,定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。 3,定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出具体的 实现方法。 4,定义3个类:Tank,Flighter,WarShip都继承自Weapon,分别用不同的方式实现Weapon 类中的抽象方法。 5,写一个类Army,代表一支军队,这个类有一个属性是Weapon数组w(用来存储该军队所拥有的所有武器);该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。该类还提供一个方法addWeapon(Weapon wa),表示把参数wa所代表的武器加入到数组w中。在这个类中还定义两个方法attackAll()和moveAll(),让w数组中的所有武器攻击和移动。 6,写一个主方法去测试以上程序。 interface Assaultable{//可攻击的 void attack(); } interface Mobile{//可移动的 void move(); } abstractclass Weapon implements Assaultable,Mobile { publicvoid attack(){} publicvoid move(){} } class Tank extends Weapon{ publicvoid attack(){ System.out.println("坦克攻击!!!"); } publicvoid move(){ System.out.println("坦克移动!!!"); } } class Flighter extends Weapon{ publicvoid attack(){ System.out.println("战斗机攻击!!!"); } publicvoid move(){ System.out.println("战斗机移动!!!");

java开发接口文档模板

竭诚为您提供优质文档/双击可除java开发接口文档模板 篇一:java的接口与实例 一、定义 java接口(interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口定义的一般形式为: [访问控制符]interface{ 类型标识符final符号常量名n=常数; 返回值类型方法名([参数列表]); … } 二、接口的特点 1、java接口中的成员变量默认都是 public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔) 2、java接口中的方法默认都是public,abstract类型

的(都可省略),没有方法体,不能被实例化 3、java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法 4、接口中没有构造方法,不能被实例化 5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口 6、java接口必须通过类来实现它的抽象方法 7、当类实现了某个java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类 8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例 9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承. 三、接口的用法 1、精简程序结构,免除重复定义 比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。 下图是分别定义鸟类和昆虫类,其都有飞行的方法。

java继承与接口 实验报告

应用数学学院信息与计算科学专业 2 班学号3111008162 姓名许庆平教师评定_________________ 实验题目继承与接口 一、实验目的与要求 实验目的: 1、掌握类的继承关系。 2、掌握接口的定义与使用。 实验要求: 按下列要求编写Java程序: 1、定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。 2、编写矩形类,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。 3、编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。 二、实验方案 先按要求定义接口Printx,再创建一个矩形类Rectangle,有成员变量length 和width,area()求面积,circle()求周长,用PrintMyWay()显示。 然后定义正方形类,继承Rectangle类,定义求对角线长的函数duijiaoxian()。面积和周长用父类中的area()和circle()实现。用PrintMyWay()显示。最后在主类中实现这两个类。 三、代码如下 interface Printx

{ void PrintMyWay();} class Rectangle implements Printx { int length,width; Rectangle(int x,int y){ length=x; width=y; } int area(){ return length*width; } int circle(){ return 2*(length+width); } public void PrintMyWay(){ System.out.println("矩形的长为:"+length); System.out.println("矩形的宽为:"+width); System.out.println("矩形的面积为:"+area()); System.out.println("矩形的周长为:"+circle()); }

java的接口与实例

一、定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口定义的一般形式为: [访问控制符]interface <接口名> { 类型标识符final 符号常量名n = 常数; 返回值类型方法名([参数列表]); … } 二、接口的特点 1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔) 2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化 3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法 4、接口中没有构造方法,不能被实例化 5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口 6、Java接口必须通过类来实现它的抽象方法 7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类 8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例 9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.

三、接口的用法 1、精简程序结构,免除重复定义 比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。 举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。 下图是分别定义鸟类和昆虫类,其都有飞行的方法。 下图定义了接口,其类图如下: 实现代码如下: [java]view plaincopyprint? 1. interface Flyanimal{ 2. void fly(); 3. }

java接口作用及其好处

java接口作用及其好处 接口是实现构件可插入性的关键,可插入构件的关键在于存在一个公用的接口,以及每个构件实现了这个接口。 什么是接口? Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。 在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。 Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。 Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。 接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。 为什么使用接口? 两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。 问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最

java中接口的定义与实现

java中接口的定义与实现 1、定义接口 使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下: [修饰符] interface 接口名[extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; } 修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。 接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。 extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends 关键字时,父接口名为必选参数。 方法:接口中的方法只有定义而没有被实现。 例如,定义一个用于计算的接口,在该接口中定义了一个常量PI和两个方法,具体代码如下: [java] view plain copy public interface CalInterface { final float PI=3.14159f;//定义用于表示圆周率的常量PI float getArea(float r);//定义一个用于计算面积的方法getArea() float getCircumference(float r);//定义一个用于计算周长的方法getCircumference() } 注意: 与Java的类文件一样,接口文件的文件名必须与接口名相同。 实现接口 接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下: [修饰符] class <类名> [extends 父类名] [implements 接口列表]{ } 修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。 类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。 extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。 implements 接口列表:可选参数,用于指定该类实现的是哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。 在类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。例如,编写一个名称为Cire的类,该类实现5.7.1节中定义的接口Calculate,具体代码如下:

java第六次实验报告接口

1、实验题目 体操比赛计算选手成绩的办法是去掉一个最高分和一个最低分再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班学生的平均成绩。Gymnastics 类和School 类都实现了ComputerAverage接口,但实现方式不同。 2、程序代码 interface ComputerAverage{ public double average(double x[]); } class Gymnastics implements ComputerAverage{ public double average(double x[]){ int count=; double aver=0,temp=0; for(int i=0;i2) aver=aver/(count-2); else aver=0; return aver; } } class School implements ComputerAverage{ public double average(double x[]){ int count=; double aver=0; for(int i=0;i0) aver=aver/count; return aver; }

java接口面试题

接口和抽象类有什么区别? 接口是公开的,不能包含私有的方法或变量,而抽象类是可以有私有方法或私有变量的, 实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法, 接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承, 接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用. 一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 String s = new String("xyz");创建了几个String Object? 两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型) short s1 = 1; s1 += 1;有什么错? short s1 = 1; s1 += 1;(可以正确编译) 是否可以继承String类? String类是final类故不可以继承。 try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 会执行,在return前执行。

10. 常见的runtime exception有哪些?。ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException NullPointException HashMap与HashTable的区别。

java实习报告接口与实现

第八周实验报告 接口与实现 实验1 评价成绩 1 实验目的 本实验的目的是让大家掌握类是如何实现接口的。 2 实验要求 体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。Gymnastics类和School类都实现了ComputerAverage接口,但是实现的方式不同。 3. 程序模板 请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果;对于注释语句中需要大家做出解释的,请做出解释。 参见“2014年10月24日”文件夹下的“实验1”子文件夹下的源程序 4. 实验后的练习 对于数组 Double x [] = {, , }来说,执行Gymnastics类中的二重循环的过程中,数组x一步步的变化如下: 请试着给出Double x [] = {, , , }时,执行二重循环的过程中,数组x一步步的变化。

实验2 货车的装载量 1.实验目的 本实验的目的是让大家掌握接口回调技术。 2.实验要求 货车要装载一批货物,货物由三种商品组成:电视、计算机、洗衣机。卡车需要计算出整批货物的重量。 要求有一个ComputeWeight接口,该接口中有一个方法: public double computeWeight() 有三个实现该接口的类:Television、Computer和WashMachine. 这三个类通过实现接口给出自重。 有一个Truck类,该类用ComputeWeight接口类型的数组作为成员(Truck类面向接口),那么该数组的单元就可以存放Television对象的引用、Computer对象的引用或WashMachine对象的引用。程序能输出Truck对象所装载的货物的总重量。 3.程序模板 请按照模板要求,将【代码】替换为Java程序代码,并给出程序的运行结果。 参见“2014年10月24日”文件夹下的“实验2”子文件夹下的源程序

浅谈Java的接口的作用和意义【精品范文】

浅谈Java的接口的作用和意义 浅谈Java的接口的作用和意义 什么是Java的接口?其实接口的概念较为抽象,可以理解为接口是一系列方法和特征的集合。方法和特征是类的组成部分,如果从编程的角度而言,Java的接口可以对应这Java中特定的语法结构。Java接口与Java抽象类是不一样的,抽象类可以实现某些方法,而接口则不能。下面,从接口的概念和功能上进一步详细描述其存在的意义。 那么Java在类中定义一个接口有什么意义呢? 类所描述的是一个实体,包含试题的状态和动作。一个实体能发出的动作由接口来定义。那么在类中对一个借口来定义,从本质上讲,跟在抽象类中定义一个接口一样,也体现着它的抽象性,即它是可以变化的。从面向对象的思想来看,要封装好变化的部分。这可能涉及到的涉及模式:模板涉及模式/命令涉及模式,在这个util类里面封装了会改变的Worker,可以理解为,util类里面有自己的算法:一部分是固定的,而另外一部分是可变的,尚学堂陈老师指出这个可变的部分就变成了一个接口,接口则是特殊的抽象类,worker可能在不同的工作环境有不同的工作方式,例如work()、onvaction()等等。

因此在类中定义一个接口是有其必要性的,它代表着一种编程思想,定义接口的目的是让代码有更强的可扩展性。 那么为何要定义接口?以及接口有何意义呢?那么关于接口的意义可以从以下几点来进行说明: 1、定义接口的重要性:在Java编程,abstract class 和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才使得Java成为面向对象的编程语言。 2、定义接口有利于代码的规范:对于一个大型项目而言,架构师往往会对一些主要的接口来进行定义,或者清理一些没有必要的接口。这样做的目的一方面是为了给开发人员一个清晰的指示,告诉他们哪些业务需要实现;同时也能防止由于开发人员随意命名而导致的命名不清晰和代码混乱,影响开发效率。 3、有利于对代码进行维护:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。可是在不久将来,你突然发现现有的类已经不能够满足

JAVA中接口的使用实例操作

接口 类是Java语言面向对象编程的基本元素,它定义了一个对象的结构和功能。接口是Java语言中特有的数据类型,由于接口的存在,解决了Java语言 不支持多重继承的问题。 定义接口可归纳为如下几点: (1)在Java中接口是一种专门的类型。用interface关键字定义接口。 (2)接口中只能定义抽象方法,不能有方法体,一定是public修饰的。 (3)接口中可以定义变量,但实际上是static final修饰的常量。 (4)接口中不能定义静态方法。 接口是简单的未执行的系列以及一些抽象的方法,你可能会思考究竟接口于抽象类有什么区别。了解它们的区别是相当重要的,它们之间的区别如下: (1)接口不能包含任何可以执行的方法,而抽象类可以。 (2)类可以实现多个接口,但只有一个父类。 (3)接口不是类分级结构的一部分,而没有联系的类可以执行相同的接口。接口实现过程如下: (1)、建立接口 public interface第一个接口 { //接口的继承通过关键字interface实现 public void a(); public void b(); //System.out.println("nihao"); //上述注释语句放置在此是错误的,原因就是接口只是用来规范方法,不用来具体实现 } (2)、接口方法规范 public class接口方法规范implements第一个接口 { //接口的继承通过关键字implements实现 public void a() { System.out.println("这是接口的运用!"); final int a=10,b=20; double c;

java接口

Java接口学习笔记 java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承 一、Java接口基础知识 1, Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承. 2, 与Java接口相关的设计模式: 1, 定制服务模式 设计精粒度的接口,每个Java接口代表相关的一组服务,通过继承来创建复合接口 2, 适配器模式 当每个系统之间接口不匹配时,用适配器来转换接口 3, 默认适配器模式 为接口提供简单的默认实现 4, 代理模式 为Java接口的实现类创建代理类,使用者通过代理来获得实现类的服务 5, 标识类型模式 用接口来标识一种没有任何行为的抽象类型 6, 常量接口模式 在接口中定义静态常量,在其它类中通过import static语句引入这些常量 Java接口的特征归纳: 1, Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔) 2, Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化 1public interface A 2 { 3 int CONST = 1; //合法,CONST默认为public,static,final类型 4 void method(); //合法,method()默认为public,abstract类型 5 public abstract void method2(); //method2()显示声明为public,abstract 类型 6 } 3, Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法 7public interface A

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( );

java接口

Java 接口 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。 接口与类相似点: ?一个接口可以有多个方法。 ?接口文件保存在 .java 结尾的文件中,文件名使用接口名。 ?接口的字节码文件保存在 .class 结尾的文件中。 ?接口相应的字节码文件必须在与包名称相匹配的目录结构中。 接口与类的区别: ?接口不能用于实例化对象。 ?接口没有构造方法。 ?接口中所有的方法必须是抽象方法。 ?接口不能包含成员变量,除了static 和final 变量。 ?接口不是被类继承了,而是要被类实现。 ?接口支持多重继承。 接口特性

?接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为public abstract(只能是public abstract,其他修饰符都会报错)。 ?接口中可以含有变量,但是接口中的变量会被隐式的指定为public static final变量(并且只能是public,用private 修饰会报编译错误。 ?接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。抽象类和接口的区别 ? 1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。 ? 2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。 ? 3. 接口中不能还有静态代码块以及静态方法(用static 修饰的方法),而抽象类是可以有静态代码块和静态方法。 ? 4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。 NameOfInterface.java 文件代码:

JAVA接口

程序的代码 interface Shape//Shape接口 { final byte INPUTWIDTH=1; //常量表示使用者当前输入的是Width final byte INPUTHEIGHT=2; //常量表示使用者当前输入的是Height abstract int area();//抽象方法area() } class Triangle extends Rectangle // Triangle类继承Rectangle类 { private int width; //私有成员width其实没有也可以,只是根据报告的要求private int height; //私有成员height其实没有也可以,只是根据报告的要求Triangle()//构造函数,没有参数 { super();//调用到父类Rectangle,没有参数的构造函数 } Triangle(int width,int height) //有两个参数的构造函数 { super(width,height); //调用到父类有两个参数的构造函数 } public int area()//方法area()覆盖父类的方法area() { return (width*height)/2; } } class Rectangle implements Shape //类Rectangle实现接口Shape { protected int width; //保护成员变量可以让子类看到 protected int height; //保护成员变量可以让子类看到 Rectangle(int width,int height) //构造方法有两个参数 { this.width=width; //把传进来的width赋值给当前实例的width

java中的接口

Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。 在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。 Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java 接口比Java抽象类更抽象化。 Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。 接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。 [编辑本段]为什么使用接口 两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。 问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。 接口是可插入性的保证。 在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。 我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。 接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。 类型 使用Java接口将软件单位与内部和外部耦合起来。使用Java接口不是具体的类进行变量的类型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。 在理想的情况下,一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法,而不应当给多余方法。 类型等级结构 Java接口(以及抽象类)一般用来作为一个类型的等级结构的起点。 如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次要的超类型叫做混合类型。 [编辑本段]Java接口常用方法

十九 JAVA的接口及实例

十九、Java的接口及实例 一、定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口定义的一般形式为: [访问控制符]interface<接口名>{ 类型标识符final符号常量名n=常数; 返回值类型方法名([参数列表]); … } 二、接口的特点 1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)

2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化 3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法 4、接口中没有构造方法,不能被实例化 5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口 6、Java接口必须通过类来实现它的抽象方法 7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类 8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例 9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承. 三、接口的用法 1、精简程序结构,免除重复定义

比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。 举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。 下图是分别定义鸟类和昆虫类,其都有飞行的方法。 下图定义了接口,其类图如下:

相关主题
相关文档
最新文档