java8介面的靜態方法和預設方法

Doto丶發表於2018-03-17

java8的介面中可以有default方法及static方法。
普通的抽象方法不可以有實現,實現此介面的類必須實現所有抽象方法。
預設方法必須有實現,實現此介面的類預設繼承此方法,當然你也可以覆蓋預設方法。(不實現此方法會預設繼承,並不會報錯)。
靜態方法必須有實現。但是實現此介面的類無法實現靜態方法。

舉一個小栗子:

	public class DefaultInterfaceTest {
	
	  private static final LoggerSimpleFromPfliu log = new LoggerSimpleFromPfliu(
	      DefaultInterfaceTest.class);
	
	
	  public static void main(String args[]) {
	    TestInterface.staticMethod();
	    DefaultInterfaceTest defaultInterfaceTest = new DefaultInterfaceTest();
	    defaultInterfaceTest.test();
	
	  }
	
	  private void test() {
	    TestClass testClass = new TestClass();
	    testClass.abstractmethod();
	    testClass.defaultMethod();
	
	
	  }
	  
	  private class TestClass implements TestInterface {
	
	   	@Override
	    public void abstractmethod() {
	      log.debug("abstract");
	    }
	
	  }
	
	  public interface TestInterface {
	    void abstractmethod();
	    default void defaultMethod() {
	      log.debug("default");
	    }
	    static void staticMethod() {
	      log.debug("static");
	    }
	  }
	}
複製程式碼

程式執行結果是:
static
abstract
default



ChangeLog

2018-03-11 完成

以上皆為個人所思所得,如有錯誤歡迎評論區指正。

歡迎轉載,煩請署名並保留原文連結。

更多學習筆記見個人部落格------>呼延十

相關文章