2012-01-17 50 views
3

class Car extends Viecle编译后的java继承

Car被编译。

类别Client使用Car

田野,从方法编译期间投入Car类或Car只需要类要在编译和编译后(而不是删除) - 在运行时?

回答

5

后者,汽车需要车辆在运行时编译和包含。

如果情况并非如此,那么在类文件中会有相当多的不必要的代码重复,如果Vehicle继承了10次,代码将被包含在系统中总共11次。这将同时将不必要的内存和CPU时间用于JIT编译。

+0

是否有任何方法java指示不要这样做,只有一个超类而不是10? – dinesh707 2014-02-04 12:40:32

4

不,编译后不能删除类。它将在运行时期间被需要。

如果必须将所有基类的所有成员(基于访问说明符)复制到其本身中,请考虑最具体的类文件的大小。考虑类文件中的代码复制。

以及如果更改已包含在派生类中的基类中的代码,并且仅编译基类,该怎么办。

由于以上所有原因,在编译时基类不能(不应该)包含在派生类中。