欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 8中接口定义

程序员文章站 2022-04-16 19:43:21
...

一接口定义

[修饰符]interface 接口名 extends 父接口1,父接口2…

{

     零个到多个常量定义…

     零个到多个抽象方法定义…

     零个到多个内部类,接口,枚举定义…

     零个到多个默认方法或类方法定义…

}

 

二接口应用

1 Output接口

package cakin24;


public interface Output
{
	// 接口里定义的成员变量只能是常量
	int MAX_CACHE_LINE = 50;
	// 接口里定义的普通方法只能是public的抽象方法
	void out();
	void getData(String msg);
	// 在接口中定义默认方法,需要使用default修饰
	default void print(String... msgs)
	{
		for (String msg : msgs)
		{
			System.out.println(msg);
		}
	}
	// 在接口中定义默认方法,需要使用default修饰
	default void test()
	{
		System.out.println("默认的test()方法");
	}
	// 在接口中定义类方法,需要使用static修饰
	static String staticTest()
	{
		return "接口里的类方法";
	}
}

2 OutputFieldTest类

package cakin;


public class OutputFieldTest
{
	public static void main(String[] args)
	{
		// 访问另一个包中的Output接口的MAX_CACHE_LINE
		System.out.println(cakin24.Output.MAX_CACHE_LINE);
		// 下面语句将引起"为final变量赋值"的编译异常
		// lee.Output.MAX_CACHE_LINE = 20;
		// 使用接口来调用类方法
		System.out.println(cakin24.Output.staticTest());
	}
}

3 运行结果

50

接口里的类方法

4 代码分析

4.1 上面定义了一个Output接口,这个接口包含一个成员变量:MAX_CACHE_LINE。除此之外,还定义了两个普通方法:表示取得数据的getData方法和表示输出的out方法。

4.2 Java 8中允许在接口中定义默认方法,默认方法必须使用default修饰,该方法不能使用static修饰。

4.3 Java 8中允许在接口中定义类方法,类方法必须使用static修饰,该方法不能使用default修饰,无论程序是否指定,类方法总是使用public修饰。类方法可以直接使用接口来调用。

4.4 接口里的成员变量默认是使用public static finaI修饰,因此即使另一类处于不同包下,也可以通过接口来访问接口里的成员变量。