我在名为Fruit
的程序包中有一个名为food
的超类。我在默认包中有一个名为Apple
的子类。 Apple
扩展了Fruit
。
Project Structure :
default package
-Apple.java
food package
-Fruit.java
出于好奇,我从Fruit
类中删除了package语句,只编译了Apple
类,但编译失败。
自从我的Apple
类提到import food.Fruit;
以来,Java是否不应该在名为Fruit
的目录内找到food
类并编译Apple
类?
Fruit
类:
//package food;
public class Fruit
{
private int size=10;
public int getSize()
{
return size;
}
}
Apple
类:
import food.Fruit;
class Apple extends Fruit
{
public static void main(String[] args)
{
Apple a= new Apple();
System.out.println(a.getSize());
}
}
我收到的错误消息是:
Apple.java:1: error: cannot access Fruit
import food.Fruit;
^
bad source file: .\food\Fruit.java
file does not contain class food.Fruit
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
答案 0 :(得分:0)
package语句标识Java程序所使用的软件包 属于。如果您的程序不包含package语句,则 程序属于默认软件包,它只是一个 没有名字。
要解决此问题,您应该从两个类中删除package语句,然后将这两个类都视为默认包。
否则,您应该在该软件包的所有类中使用package语句。