这个问题可能很愚蠢,但我不小心检查了 java 源代码,runnable 接口(interface)中的 run 方法是用 abstract 关键字定义的。 但是根据接口(interface)定义,接口(interface)中的所有方法默认都是抽象的。 然后我很困惑为什么 Runnable 接口(interface)特别有 run 方法的抽象关键字。 我检查了其他接口(interface),如 map 、 list 等,但没有人有 abstract 关键字。
请给我一个想法,为什么它在 java 源代码中是这样写的。
public abstract void run();
谢谢
最佳答案
'public' 声明也是多余的,因为默认情况下所有符号在接口(interface)中都是公共(public)的。
大概是习惯这样写吧。我想 Runnable
是在 JDK 1.0 中构想的第一批接口(interface)之一,那时,接口(interface)的声明默认值可能还没有完全灌输到 JDK 开发人员的脑海中。我记得在 James Gosling 的一次采访中读到,在 Oak(后来成为 Java 的项目名称)中,曾经没有接口(interface),只有像 C++ 这样的抽象类,这可能是它的后遗症。
我有时也会为接口(interface)方法和常量写“public”,尽管这不是必需的。
关于java - 为什么在runnable接口(interface)中运行用abstract关键字定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289767/