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 }

 

 

posted @ 2021-06-11 14:34  yub4by  阅读(71)  评论(0编辑  收藏  举报