Jdk1.8新特性 - 靜態方法和默認方法

一、說明

    Java 8 新增了接口的靜態方法和默認方法。即接口可以有實現方法,而且不需要實現類去實現其方法,通過static和default關鍵字實現

    靜態方法和默認方法的引進,解決了接口一旦發生修改將與現有的實現不兼容的問題

 

二、示例

  •     1、接口
package com.xl.infc;

public interface Employee {
	
	/**
	 * 	抽象方法  實現類必須重寫,必須通過實現類的實例來調用
	 */
	public void say();
	
	/**
	 * 	靜態方法  只能通過接口的接口名來調用,實現類可以互不衝突的定義相同的方法並通過實現類的類名來調用
	 */
	public static void work() {
		System.out.println("幹活");
	}
	
	/**
	 * 	默認方法  必須通過實現類的實例來調用,可以重寫,但不能再加default關鍵字,且將覆蓋接口中的實現
	 */
	public default void role() {
		System.out.println("員工");
	}
}
  •     2、實現
package com.xl.infc;

public class Programmer implements Employee {

	@Override
	public void say() {
		System.out.println("上班");
	}
	
	/**
	 * 	實現類可以定義的和接口相同的靜態方法,通過類名來調用
	 */
	public static void work() {
		System.out.println("擼代碼");
	}
	
	/**
	 * 	重寫接口的默認方法,不能再用default關鍵字修飾,且將覆蓋接口中的實現,且必須通過實例來調用
	 */
	@Override
	public void role() {
		System.out.println("程序員");
	}

	public static void main(String[] args) {
		Employee.work();
		Programmer.work();
		
		Programmer p = new Programmer();
		p.say();
		p.role();
	}

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章