1. 程式人生 > 其它 >JavaSE-22.2.1【介面中預設方法(JDK8更新)】

JavaSE-22.2.1【介面中預設方法(JDK8更新)】

 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 }