java中的接口

Posted

tags:

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

  接口(interface)可以想想为一个纯的抽象类。他允许创建者规定一个类的基本形式:方法名,自编量表,以及返回类型,但是不规定方法体。接口也包含数据成员,但是他们都默认为static和final。即接口只提供细节,不提供实现细节。接口中所有方法都是抽象的,这些抽象方法通过实现这一接口的不同类来完成,使用过程中,接口类变量可以表示任何实现该接口类的对象,这可以大限度的实现动态绑定,隐藏实现细节。

  接口语法使用interface关键字声明,只声明类方法原型,不定义直接的方法类容,格式如下:

    [接口修饰符]  interface  接口名称  [<Type>]  [extends 父类名]{

      ....//方法原型

      }

值得注意的是,在接口声明中,java允许省略声明数据成员的final关键字,方法的public以及abstract关键字。如下:

interface Shape2D{
	final double pi = 3.14;
	public abstract double area();
}

 可以直接省略关键字:

interface Shape2D{
	double pi = 3.14;
	double area();
}

   接口实现,接口自然不能象一般类一样使用new运算符可以产生对象。利用接口构造类的过程叫做接口实现。实现接口需要implements关键字,语法如下:

    [类修饰符]  class  类名  implements  接口名称{
      ...//实现interface的方法

    }

下面例子实现Shape2D。

 

import static java.lang.Math.*;

interface Shape2D{
	final double pi = 3.14;
	public abstract double area();
	
}

class Circle implements  Shape2D{
	private double radius ;
	
	public Circle(double r){
		radius = r;
	}
	
	public double area(){
		return pi*radius*radius;
	}
}

class Rectangle implements Shape2D{
	private double width;
	private double length;
	
	public Rectangle(double w,double l){
		width = w;
		length = l;
	}
	
	public double area(){
		return width*length;
	}
	
}

 public class Test{
	public static void main(String [] args){
	
		Shape2D  circle = new Circle(2.0);
		Shape2D rectangle = new Rectangle(3.0, 5.0);
		
		System.out.println(circle.area());
		System.out.println(rectangle.area());
		
	}
}

 


以上是关于java中的接口的主要内容,如果未能解决你的问题,请参考以下文章

LockSupport.java 中的 FIFO 互斥代码片段

(转) Java中的负数及基本类型的转型详解

Java Lambda

从父片段到选项卡片段的接口侦听器不起作用

java中封装,继承,多态,接口学习总结

如何使用接口在片段和活动之间进行通信?