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