zg18434886024 2018-10-30 13:13 采纳率: 50%
浏览 1334

接口中的main方法是怎么回事,有没有大神解释下?

为什么在jdk1.8环境下,接口中可以写mian方法,并且还可以运行?而且在eclipse中运行出现以下界面,请问是什么意思?
图片说明

  • 写回答

1条回答 默认 最新

  • JPF1024 2018-10-30 15:16
    关注

    试了一下确实可以运行,但在接口里面定义main方法显得太奇怪了。

    你图片下面的InterfaceDemo$1是InterfaceDemo编译匿名内部类。

     /**
     * @author puruidong
     * @version 2018/10/30 23:09
     */
    public interface InterfaceMain {
    
        /**
         * 可以运行.
         *
         * @param args
         */
        static void main (String[] args){
            System.out.println("interface");
        }
    
        /**
         * 不能运行.
         *
         */
        static void main (){
            System.out.println("interface");
        }
    
        /**
         * 默认方法.可以参考{@link java.util.Map#getOrDefault}
         *
         */
        default void abc(){
    
        }
    }
    
    

    只有jdk 8中可以这么做。

    普通方法可以用default修饰,具体参考java.util.Map类的实现.

    如下:

     default V getOrDefault(Object key, V defaultValue) {
            V v;
            return (((v = get(key)) != null) || containsKey(key))
                ? v
                : defaultValue;
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序