lzj*_*jun 43 java extends implements
为什么实现必须始终在类声明中扩展后编写,例如:
public class Register extends ActionSupport implements ModelDriven
Run Code Online (Sandbox Code Playgroud)
为什么不
public class Register implements ModelDriven extends ActionSupport
Run Code Online (Sandbox Code Playgroud)
是编译时错误
Nat*_*ord 90
当Java编译器将类转换为字节码时,它必须首先查看父类.这是因为类的底层实现是指向父类的字节码 - 它包含相关的方法和字段.然后它添加了指向子类函数代码的指针 - 其中一些函数由'implements'关键字强制执行.
因为父类必须是可编译的,所以如果编译器预先知道该类是什么,则更容易.此外,您只能扩展一个类,但可以实现任意数量的接口.如果extends关键字可以在任意数量的实现指令之间混合,则编译时间会增加.编译器希望尽可能快地失败以减少开发时间,因此这种选择是合乎逻辑的.此外,它可以帮助您以同样的理由清楚地思考课程.
可能使编译器的工作更容易。这只是一个约定。能够重新排列这些内容没有任何优势。
这就好比问为什么Java函数没有像一样用预写符号表示public int (int a, int b)add{ return a+b; }。