java语言 百分网手机站

Java语言中接口的定义及实现

时间:2020-09-05 12:20:09 java语言 我要投稿

Java语言中接口的定义及实现

  导语:在Java中,除了使用抽象类来实现一定程度的抽象外,还可以定义一种特殊的“抽象类”:接口。下面就由小编为大家介绍一下Java语言中接口的定义及实现,欢迎大家阅读!

  引言

  在Java语言中为了使程序设计变得简单清晰,不允许类的多重继承,只允许单重继承,即一个类只能有一个直接父类。这虽然简化了程序的结构,但也丧失了编写程序的灵活性,减弱了面向对象程序设计的代码复用功能。因此需要引进其他的机制来帮助实现类似于类的多重继承的功能,这就是Java语言中的接口(interface)。

  接口是一种完全没有实现的类,在接口中只包含了抽象的方法和常量的定义。与类不同的是,接口的定义使用interface关键字,而类的定义使用class关键字。实际上,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,没有变量和方法的实现。即接口是一种概念性的模型,它有助于类层次结构的设计。某些代码设计的方法是首先设计所有的接口和类,然后再设计实现接口。这样会避免代码集成时出现的许多问题。以这种方式进行的设计通常更为通用而且更易于扩展。

  接口的用处主要体现在以下几个方面:

  ①可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。②可以指明多个类需要实现的方法。③可以理解对象的交互界面,而不需要了解对象所对应的类。

  1接口的定义

  接口的定义包括两个部分:声明部分和接口体。

  1.1 接口的声明接口用interface关键字来声明,接口声明的一般格式为:

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

  接口体

  }

  其中

  修饰符:为接口的访问权限,有public和缺省两种状态。public表示任意类均可使用这个接口。缺省情况下,只有与该接口定义在同一包中的类才可以访问这个接口,而其他包中的类无权访问该接口。

  接口名:为Java中的合法标识符。

  父类接口列表:一个接口可以继承其它接口,可通过关键字extends来实现,其语法与类的继承相同。被继承的接口为父类接口,当有多个父类接口时,用逗号“,”分隔开。子接口可以继承父接口的所有常量和方法。

  1.2 接口体接口体是包含在一对大括号中的部分,由常量定义和方法定义两个部分。

  1.2.1 常量定义常量定义的格式如下:

  [public][static][final]<常量类型><常量名>=<常量值>

  其中

  public static final:接口中的常量只能被public static final修饰,即使没有在声明中显式修饰而使用系统默认也是一样,接口中的常量必须被赋予常量值,并且在继承这个接口的类也不能改变它的值。

  常量类型:可以是任何类型。

  常量名:为Java中的合法标识符,通常大写。

  1.2.2 方法定义方法定义的格式如下:

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

  接口中只进行方法的声明,而不提供方法的实现。所以方法定义没有方法体,且用分号“;”结尾。接口中的方法默认是由public abstract修饰的,因此不管是否有修饰符显式修饰接口中的方法都是公共的抽象方法。

  如果在子类接口中定义了和父类接口中同名的常量和相同的方法,则父类接口中的常量被隐藏,方法被重写。

  2方法的实现

  一个接口可以被一个或多个类实现。当一个类实现一个接口,它必须实现接口中所有的.方法,用关键字implements实现接口。一个类还可以实现多个接口,各接口用逗号“,”隔开,实现接口的语句格式如下:

  class<类名>implements接口名1,接口名2,……

  在类体中可以使用接口中定义的常量,由于接口中的方法为抽象方法,所以必须在类体中加入要实现接口方法的代码,如果一个接口是从别的一个或多个父接口中继承而来的,则在类体中必须加入实现该接口及其父接口中所有方法的代码。在实现接口时,类中对方法定义要和接口中的相应方法的定义相匹配,其方法名、方法返回值类型、方法的访问权限和参数的数目与类型等都要一致。

  3接口和抽象类的区别

  抽象类和接口在Java语言中都是用来进行抽象类定义的。在面向对象的概念中,所有的对象都是通过类来描述的,但并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征在对问题领域进行分析、设计中得出的抽象概念,是对一系列看一去不同,但是本质上相同的具体概念的抽象。

  抽象类和接口是不同的,具体区别如下:

  抽象类中可以定义成员变量和成员方法,其中可含有非抽象的成员方法。而接口中只能定义常量和没有实现的方法,方法完全是抽象的,只有声明,没有方法的具体实现。

  一个子类只能继承一个抽象类,但一个子类可以实现多个接口。

  抽象类和接口有相同的地方,二者都不能实例化。

【Java语言中接口的定义及实现】相关文章:

Java接口介绍12-08

java中定义常量的方法及介绍12-04

介绍Java array接口11-29

Java 队列实现原理及简单实现代码12-02

关于Java各种接口的介绍11-27

Java中接口的知识汇总12-01

override和Java overload的定义及异同点分析11-30

深入了解Java中的接口11-23

JAVA简单选择排序算法及实现12-01

Java中Executor接口用法大全11-27