Java中接口的定义与实现

 1、定义接口

  使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:

  [修饰符] interface 接口名 [extends 父接口名列表]{

  [public] [static] [final] 常量;

  [public] [abstract] 方法;

  }

  修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。

  接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。

  extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。

  方法:接口中的方法只有定义而没有被实现。

  例如,定义一个用于计算的接口,在该接口中定义了一个常量PI和两个方法,具体代码如下:


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,具体代码如下:


public class Cire implements CalInterface

{

public float getArea(float r)

{

float area=PI*r*r;//计算圆面积并赋值给变量area

return area;//返回计算后的圆面积

}

public float getCircumference(float r)

{

float circumference=2*PI*r;      //计算圆周长并赋值给变量circumference

return circumference;           //返回计算后的圆周长

}

public static void main(String[] args)

{

Cire c = new Cire();

float f = c.getArea(2.0f);

System.out.println(Float.toString(f));

}

}

  在类的继承中,只能做单重继承,而实现接口时,一次则可以实现多个接口,每个接口间使用逗号“,”分隔。这时就可能出现常量或方法名冲突的情况,解决该问 题时,如果常量冲突,则需要明确指定常量的接口,这可以通过“接口名.常量”实现。如果出现方法冲突时,则只要实现一个方法就可以了。下面通过一个具体的 实例详细介绍以上问题的解决方法。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-05 20:24:43

Java中接口的定义与实现的相关文章

Java中接口和抽象类的区别与相同之处

  这篇文章主要介绍了Java中接口和抽象类的区别与相同之处,本文讲解了抽象类的概念.接口的概念.接口和抽象类的区别与联系等内容,需要的朋友可以参考下 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: 代码如下: public abstract class abstractDemo{ /**属性*/ private Stri

java中接口没有构造方法那子类怎么访问他的数据

问题描述 java中接口没有构造方法那子类怎么访问他的数据 感觉跟以往学过的知识冲突了?哪位大神能伸出援手解答下?这个问题困扰我好久了,希望走过路过的不要错过哈! 解决方案 接口有什么数据?接口就是一个定义,不存任何数据. 解决方案二: 接口中没有任何函数,接口不是类,不能构造一个接口.只能构造一个实现了这个接口的函数. 解决方案三: 接口就是公共方法的集合,只有公有常量和抽象方法,数据是类的属性,只有类才可以定义私有成员变量的. 解决方案四: 接口,不能实例化,没有构造方法 解决方案五: 接口

关于java中接口的作用

问题描述 关于java中接口的作用 java中接口有什么作用,新手,求教.为什么要写接口 我直接写实现的方法不就行了么 接口又有什么用 字典上解释接口时说系统中两个不同部分的链接的地方对吗 解决方案 你先要知道什么是接口,其次定义接口的作用,比如有一个类要实现好多方法,你不能让这个类继承所有的类去实现它里面的方法,因为java只支持单继承,当你用了接口以后,你可以在接口里面定义好那个类所需要的方法,然后让该类实现这个接口就可以,这样的话,就相当于你实现了一个类继承了多个类,而且在继承和接口中,还

java中数组的定义及使用方法(推荐)_java

数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组.二维数组.多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的, 使用java数组,必须经过两个步骤,声明数组和分配内存给该数组, 声明形式一 声明一维数组:数据类型

java中接口的实现类有的命名为XxxSupport,请问这个Support是什么意思,和XxxImpl意义相同吗

问题描述 如题:java中接口的实现类有的命名为XxxSupport,请问这个Support是什么意思,和XxxImpl意义相同吗,请问这是什么模式或者思想 解决方案 Support 一般是抽象类,里边存放子类可复用的东西 共性如 struts2的ActionSupport spring的 ***DaoSupporthttp://jinnianshilongnian.iteye.com/blog/1685963Impl表示实现:是个性 即细节实现,不同的Impl里边的算法可能不一样 但都是完成同

编程-java中在类定义里能实例化本类的对象吗?

问题描述 java中在类定义里能实例化本类的对象吗? 我在一本书上看到这个,这里的内容试讲java的构造方法私有化的 class Singleton { Singleton instance=new Singleton(); private Singleton() {} public void print() { System.out.println("Hello World"); } } 这个我想请教一下,为什么这里能在类定义里实例化本类的对象? 这里还列出了另一种方式: class

java中什么时候定义类属性用基本数据类型,什么时候用引用数据类型?

问题描述 java中什么时候定义类属性用基本数据类型,什么时候用引用数据类型? 例如什么时候定义Integer i=1; 什么时候定义int i=1; 又如Long i=2; long i=2 求解释 解决方案 Integer.Float等这些叫做"外覆类",相比较int float等类型来说,它们可以被添加到ArrayList等集合中,因为这些集合需要引用类型. 更详细的介绍http://my.oschina.net/u/1861837/blog/335581?fromerr=GTp

在java中接口可以继承接口吗?

问题描述 在java中接口可以继承接口吗? 答案是可以,但是接口继承接口的意义何在? 我觉得接口最大的作用就是规范程序的结构,如果接口继承一个接口,这是要干嘛啊? 解决方案 不仅可以继承,还可以多继承.可以用来扩展功能啊,这样不用修改父借口,方便维护.体会过具体应用场景就明白了. 解决方案二: 接口可以多继承,,但类只能单继承,,多实现 解决方案三: 这得根据你的业务场景来说.接口的继承就像类的继承一样.继承父类或者父接口的方法或者参数.

匿名对象-java中接口,匿名类,实现这个接口类的方法

问题描述 java中接口,匿名类,实现这个接口类的方法 不能直接new一个接口,但是接口再被实现后,再new这个接口,并写上实现这个接口的方法,那么new的这个接口如果没有赋值引用,那么new的这个接口就是一个匿名类,这么理解对不 解决方案 没有名字的类就是匿名类,没有名字的对象就是匿名对象. 判断标准,你能不能说出类的名字.说不出肯定是匿名类. 解决方案二: 你看下这个文章 应该能理解了匿名类直接new接口 解决方案三: 利用匿名内部类实现Java接口方法java实现接口类Java面向对象 匿