一起学Java(四十七)----- 接口定义增强

时间:2020-05-22
本文章向大家介绍一起学Java(四十七)----- 接口定义增强,主要包括一起学Java(四十七)----- 接口定义增强使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

不积跬步,无以至千里;不积小流,无以成江海。

 

Java语言基础

 

Java的接口定义增强

在JDK1.8之前,接口有如下特性:

 

1、接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。

2、接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。

3、接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

JDK1.8,增强接口定义:

允许在接口中定义普通方法,用defaultstatic关键字修饰。

 

用default关键字定义方法

在接口中使用default关键字定义方法,需要添加方法体,default见名思意就是说,为这个方法提供一个默认写好的方法体实现。当然,在子接口中也可以继续去覆写它。

interface A{
	String NAME = "tutu"; // 全局常量
	void print(); // 抽象方法	
	default void dprint() {
		System.out.println("接口A中default定义的方法体");
	}
}

class X implements A{
	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("接口A中的抽象方法");
	}
	@Override
	public void dprint() {
		System.out.println("覆写接口A中default定义的方法体");
	}
}
public class TestDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		A a = new X();
		a.dprint();
		a.print();
	}
}

 程序输出:

覆写接口A中default定义的方法体
接口A中的抽象方法

 

用Static关键字定义方法

使用static关键字修饰的方法叫做静态方法,它不依赖于某个对象就可以访问。在接口中定义static方法也是如此,可以通过接口名直接调用。

interface A{
	String NAME = "tutu"; // 全局常量
	void print(); // 抽象方法	
	static void sprint() {
		System.out.println("接口A中static定义的方法体");
	}
}

class X implements A{
	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("接口A中的抽象方法");
	}
}
public class TestDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		A.sprint();
	}
}

 程序输出:

接口A中static定义的方法体

博客借鉴:https://www.cnblogs.com/hyyq/p/7420534.html

原文地址:https://www.cnblogs.com/smilexuezi/p/12938598.html