如果父级已经导入了类,为什么我们需要导入一个类

时间:2013-07-03 16:10:34

标签: java android inheritance

说我有:

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,因为父类已经导入它。是什么给了什么?

1 个答案:

答案 0 :(得分:8)

在Java中,导入的范围不是声明的类,而是导入的文件。因此,在另一个文件中,您仍必须导入所需内容。

根据JLS, Section 7.5

  

导入声明通过简单的方式使类型或成员可用   仅在实际包含的编译单元内的名称   进口申报。

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