为什么允许Java 8中的接口具有main方法?

编码器鳄鱼

为什么main在Java 8中允许接口具有方法?

如下面的代码所述,它可以正常工作并正确产生输出。

public interface Temp {
    public static void main(String args[]){
         System.out.println("Hello");
    }
}

目前它的行为就像一个类,我已经interface用main方法执行了。

我们为什么需要这个?

JB Nizet

从Java 8开始,接口中允许使用静态方法。

main()是静态方法。

因此,在接口中允许main()。

我们不需要它,因为以前不允许这样做,但是我们幸存了下来。但是,根据定义,由于静态方法不是绑定到类的实例,而是绑定到类本身,因此在接口中允许它们是有意义的。它允许Collections在接口本身(而不是单独的类)中定义与接口相关的实用程序方法(例如,例如在中找到的方法)。

类静态方法和接口静态方法之间没有区别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们允许在Java中拥有最终的main方法?

来自分类Dev

Java 8为什么不允许接口成员私有?

来自分类Dev

为什么允许在Java中标记几乎所有语句?

来自分类Dev

为什么允许在Java中标记几乎所有语句?

来自分类Dev

为什么在Java中不允许这种向下转换?

来自分类Dev

为什么允许在Java中抛出的异常的捕获亚型

来自分类Dev

为什么Java的不允许多重继承,但允许符合与默认实现多个接口

来自分类Dev

为什么Java 8的注释类型中不允许使用默认方法?

来自分类Dev

为什么 Java 只允许 String[] args 作为 Main 方法参数?

来自分类Dev

为什么Java中的DataInput接口没有readUnsignedInt方法

来自分类Dev

为什么Java 8中的lambda不允许对匿名类不允许的成员变量进行前向引用?

来自分类Dev

为什么Java 8中的lambda不允许匿名类不允许成员变量的前向引用?

来自分类Dev

为什么Java 8不允许使用非公共默认方法?

来自分类Dev

为什么在方法中,TypeScript允许省略“ this”?

来自分类Dev

为什么在Java和C ++中不允许隐藏虚拟函数/方法?

来自分类Dev

为什么单个EJB会话bean被允许具有多个接口?

来自分类Dev

为什么单个EJB会话bean被允许具有多个接口?

来自分类Dev

为什么Java 8 Lambda允许访问非最终类变量?

来自分类Dev

为什么在接口中只允许使用公共方法?

来自分类Dev

Java中具有不同参数的接口方法

来自分类Dev

在Java 8中使用两个具有相同签名的默认方法实现两个接口

来自分类Dev

为什么Java允许总是抛出异常的方法将返回类型声明为该异常?

来自分类Dev

Java为什么允许子类重新定义方法的返回类型?

来自分类Dev

为什么在方法重写的情况下Java不允许更改返回类型

来自分类Dev

为什么在Java中不允许赋值和不带括号的布尔运算符

来自分类Dev

为什么try-catch不允许Java applet中的其他元素出现?

来自分类Dev

为什么使用 + 的字符串加法允许移动到 java 中的新地址?

来自分类Dev

为什么JCF接口中的许多方法未在Java 8中设为默认方法?

来自分类Dev

为什么JCF接口中的许多方法未在Java 8中设为默认方法?

Related 相关文章

  1. 1

    为什么我们允许在Java中拥有最终的main方法?

  2. 2

    Java 8为什么不允许接口成员私有?

  3. 3

    为什么允许在Java中标记几乎所有语句?

  4. 4

    为什么允许在Java中标记几乎所有语句?

  5. 5

    为什么在Java中不允许这种向下转换?

  6. 6

    为什么允许在Java中抛出的异常的捕获亚型

  7. 7

    为什么Java的不允许多重继承,但允许符合与默认实现多个接口

  8. 8

    为什么Java 8的注释类型中不允许使用默认方法?

  9. 9

    为什么 Java 只允许 String[] args 作为 Main 方法参数?

  10. 10

    为什么Java中的DataInput接口没有readUnsignedInt方法

  11. 11

    为什么Java 8中的lambda不允许对匿名类不允许的成员变量进行前向引用?

  12. 12

    为什么Java 8中的lambda不允许匿名类不允许成员变量的前向引用?

  13. 13

    为什么Java 8不允许使用非公共默认方法?

  14. 14

    为什么在方法中,TypeScript允许省略“ this”?

  15. 15

    为什么在Java和C ++中不允许隐藏虚拟函数/方法?

  16. 16

    为什么单个EJB会话bean被允许具有多个接口?

  17. 17

    为什么单个EJB会话bean被允许具有多个接口?

  18. 18

    为什么Java 8 Lambda允许访问非最终类变量?

  19. 19

    为什么在接口中只允许使用公共方法?

  20. 20

    Java中具有不同参数的接口方法

  21. 21

    在Java 8中使用两个具有相同签名的默认方法实现两个接口

  22. 22

    为什么Java允许总是抛出异常的方法将返回类型声明为该异常?

  23. 23

    Java为什么允许子类重新定义方法的返回类型?

  24. 24

    为什么在方法重写的情况下Java不允许更改返回类型

  25. 25

    为什么在Java中不允许赋值和不带括号的布尔运算符

  26. 26

    为什么try-catch不允许Java applet中的其他元素出现?

  27. 27

    为什么使用 + 的字符串加法允许移动到 java 中的新地址?

  28. 28

    为什么JCF接口中的许多方法未在Java 8中设为默认方法?

  29. 29

    为什么JCF接口中的许多方法未在Java 8中设为默认方法?

热门标签

归档