1

说我有:

import android.os.Bundle;
import android.app.Activity;

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle b) {

    }
}

然后我像这样扩展该类:

public class MyNewActivity extends MyActivity {

    @Override
    public void onCreate(Bundle b) {

    }
}

如果我不包含,import android.os.Bundle;那么MyNewActivity类将不会编译,但是它应该已经知道,Bundle因为父类已经导入了它。是什么赋予了?

4

1 回答 1

8

在 Java 中,导入的范围不是声明的类,而是给出导入的文件。因此,在不同的文件中,您仍然必须导入您需要的内容。

根据JLS,第 7.5 节

导入声明使类型或成员仅在实际包含导入声明的编译单元中通过其简单名称可用。

也就是说,导入的范围是它所在的文件。

于 2013-07-03T16:13:28.253 回答