Java学习之接口概念

Posted 忘尘天外天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之接口概念相关的知识,希望对你有一定的参考价值。

  Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类。但是在实际应用中,又经常需要使用多继承来解决问题。为了解决该问题,Java语言提供接口来实现类的多继承问题。

1.接口的定义

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

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

      [public] [static] [final]  变量;             

      [public] [abstract]   方法;                      

    }                                                                                        

参数 说明
   修饰符 可选参数,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限
   接口 必选参数,用于指定接口的名称,接口名必须是合法的Java标识符,一般情况下,要求首字母大写
   extends父接口名列表 可选参数,用于指定要定义的接口继承于哪个接口。当使用extends关键字时,父接口名为必选参数
 方法     接口中的方法只有定义而没有实现

 

 

 

 

 

 

 

 

定义一个用于计算的接口,在该接口中定义一个常量PI 和两个方法。

public interface CalculateInface {
  public static final double PI = 3.14159; //定义用于表示圆周率的常量PI

  public double getCircumference(double r); //定义一个用于计算周长的方法

  public double getArea(double r); //定义一个用于计算面积的方法
}

注意: 与Java 类文件一样,接口文件的文件名必须与接口名相同。

2.接口的实现

接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用 implements 关键字,基本语法格式如下:

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

  }                                                                                                                                   

实现接口的语法格式的参数说明:

 

参数 说明
   修饰符   可选参数,用于指定类的访问权限,可选值为public、abstract 和 final
   类名   必选参数,用于指定类的名称,类名必须是合法的Java标识符,一般情况下,要求首字母大写
   extends父类名列表   可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数
 implements接口列表   当接口列表中存在多个接口名时,各个接口之间是用逗号分隔

 

 

 

 

 

 

 

 

 

  在类中实现接口时,方法名、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。

  编写一个Circle的类,实现上文定义的接口 CalculateInface 。

public class Circle implements CalculateInface{

  public double getCircumference(double r) {
  double circumference = 2*PI*r ; //计算圆周长并返回
  return circumference;
  }

  public double getArea(double r) { //计算圆的面积并返回
  double area = PI*r*r ;
  return area;
  }
}

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

 















以上是关于Java学习之接口概念的主要内容,如果未能解决你的问题,请参考以下文章

java学习之接口

JAVA学习之注解

Java学习之DAO设计模式

java学习之IO对象流

Java 集合类学习之Vector

Java Web学习之XMl学习