默認方法是JDK8新特性,指的是接口也可以提供具體方法了,而不像以前,只能提供抽象方法,Mortal 這個接口,增加了一個默認方法 r,這個方法有實現體,並且被聲明為了default,如以下代碼:
這是Mortal 接口,第3行到第5行位默認方法的方法體
1 public interface Mortal { 2 public void die(); 3 default public void r() { 4 System.out.println("牛皮"); 5 } 6 7 }
下面是ADHero類實現上面的接口,第七行為默認方法的調用
1 public class ADHero implements Mortal { 2 public void die() { 3 System.out.println("ad英雄死了"); 4 } 5 public static void main(String[] args) { 6 ADHero a=new ADHero(); 7 a.r(); 8 } 9 }
假設沒有默認方法這種機制,那么如果要為Mortal增加一個新的方法revive,那么所有實現了Mortal接口的類,都需要做改動。但是引入了默認方法后,原來的類,不需要做任何改動,並且還能得到這個默認方法。通過這種手段,就能夠很好的擴展新的類,並且做到不影響原來的類。