JavaSE-22.2.1【介面中預設方法(JDK8更新)】
阿新 • • 發佈:2021-06-11
1 package day13.lesson2; 2 3 /* 4 2 介面組成更新 5 6 2.1 介面組成更新概述 7 8 常量 9 public static final 10 抽象方法 11 public abstract 12 預設方法(Java 8) 13 靜態方法(Java 8) 14 私有方法(Java 9) 15 16 2.2 介面中預設方法 17 格式 18 [public] default 返回值型別 方法名(引數列表) { } 19 範例 20 [public] default void show3() {21 } 22 注意事項 23 預設方法不是抽象方法,所以不強制被重寫。但是可以被重寫,重寫的時候去掉default關鍵字 24 public可以省略,default不能省略 25 */ 26 public class MyInterfaceDemo { 27 public static void main(String[] args) { 28 MyInterface mi = new MyInterfaceImpl1(); 29 mi.show1(); 30 mi.show2();31 MyInterface mi2 = new MyInterfaceImpl2(); 32 mi2.show1(); 33 mi2.show2(); 34 35 mi.show3(); 36 mi2.show3(); 37 } 38 } 39 40 interface MyInterface{ 41 void show1(); 42 void show2(); 43 44 /*public default void show3(){ //JDK8之後,介面中可用預設方法 45 System.out.println("MyInterface-show3");46 }*/ 47 default void show3(){ 48 System.out.println("MyInterface-show3"); 49 } 50 } 51 52 class MyInterfaceImpl1 implements MyInterface{ 53 @Override 54 public void show1() { 55 System.out.println("MyInterfaceImpl1-show1"); 56 } 57 58 @Override 59 public void show2() { 60 System.out.println("MyInterfaceImpl1-show2"); 61 } 62 } 63 64 class MyInterfaceImpl2 implements MyInterface{ 65 @Override 66 public void show1() { 67 System.out.println("MyInterfaceImpl2-show1"); 68 } 69 70 @Override 71 public void show2() { 72 System.out.println("MyInterfaceImpl2-show2"); 73 } 74 75 @Override 76 public void show3() { //可選重寫介面中的預設方法 77 System.out.println("MyInterfaceImpl2-show3"); 78 } 79 } 80 81 interface MyInterfaceSon extends MyInterface{ 82 void show3(); 83 }