JAVA 接口组成更新

 

接口组成更新概述

(1)常量:public static final

(2)抽象方法:public abstract

(3)默认方法(Java 8) 有方法体

(4)静态方法(Java 8) 有方法体

(5)私有方法(Java 9) 有方法体

接口中默认方法

格式:

1 public default 返回值类型 方法名(参数列表) { }

范例:

1 public default void show3() { }

注意事项:

    • 默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字
    • public可以省略,default不能省略 

接口中静态方法 

格式:

1 public static 返回值类型 方法名(参数列表) { }

范例:

1 public static void show() { }

注意事项:

    • 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
    • public可以省略,static不能省略

 

接口中私有方法

私有方法产生原因:
Java 9中新增了带方法体的私有方法,这其实在Java 8中就埋下了伏笔:Java 8允许在接口中定义带方法体的默认方法和静态方法。这样可能就会引发一个问题:当两个默认方法或者静态方法中包含一段相同的代码实现时,程序必然考虑将这段实现代码抽取成一个共性方法,而这个共性方法是不需要让别人使用的,因此用私有给隐藏起来,这就是Java 9增加私有方法的必然性

定义格式:

1 格式1:
2     private 返回值类型 方法名(参数列表) { }
3 范例1:
4     private void show() { }
1 格式2:
2     private static 返回值类型 方法名(参数列表) { }
3 范例2:
4     private static void method() { }

 

例子:

复制代码
 1 接口:
 2 public interface myInterface {
 3 
 4     //默认方法:   可以调用私有的静态方法和非静态方法
 5     default void show1(){
 6         System.out.println("show1();开始");
 7 //        System.out.println("java初级工程师");
 8 //        System.out.println("java中级工程师");
 9 //        System.out.println("java高级工程师");
10         pri1();//私有非静态方法
11         System.out.println("show1();结束");
12         System.out.println("--------");
13     }
14 
15     default void show2(){
16         System.out.println("show2();开始");
17 //        System.out.println("java初级工程师");
18 //        System.out.println("java中级工程师");
19 //        System.out.println("java高级工程师");
20         pri2();     //私有静态方法
21         System.out.println("show2();结束");
22         System.out.println("--------");
23     }
24 
25     //静态方法:  只能调用私有的静态方法
26     static void method1(){
27         System.out.println("method1();开始");
28 //        System.out.println("java初级工程师");
29 //        System.out.println("java中级工程师");
30 //        System.out.println("java高级工程师");
31         pri2();   //私有静态方法
32         System.out.println("method1();结束");
33         System.out.println("--------");
34     }
35 
36     static void method2(){
37         System.out.println("method2();开始");
38 //        System.out.println("java初级工程师");
39 //        System.out.println("java中级工程师");
40 //        System.out.println("java高级工程师");
41         //pri1();   //私有静态方法
42         System.out.println("method2();结束");
43     }
44 
45     //私有方法(非静态)
46     private void pri1(){
47         System.out.println("java初级工程师");
48         System.out.println("java中级工程师");
49         System.out.println("java高级工程师");
50     }
51 
52     //私有方法(静态)
53     private static void pri2(){
54         System.out.println("java初级工程师");
55         System.out.println("java中级工程师");
56         System.out.println("java高级工程师");
57     }
58 }
复制代码
1 接口实例化对象:
2 public class myInterfaceImpl implements myInterface{
3     //此处不用重写方法
4 }
复制代码
 1 测试类:
 2 public class myInterfaceDemo {
 3     public static void main(String[] args) {
 4         //多态的形式创建对象
 5         myInterface my=new myInterfaceImpl();
 6 
 7         my.show1();
 8         my.show2();
 9 
10         //静态方法直接用,接口名调用
11         myInterface.method1();
12     }
13 }
复制代码

 

posted @   忱康  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示