我有一个目录,E:\test\access
... 在E:\test
我创建了一个包含文件:如何在包执行Java程序
package test;
public class Coffee
{
protected void service(){
System.out.println("i am service in coffee");
}
public static void main(String[] args){
}
}
class Cafe
{
public static void main(String[] args){
Coffee c=new Coffee();
c.service();
}
}
我执行以下命令:
E:\test> javac Coffee.java
E:\test> java test.Cafe
,它的工作。接下来,我走进了E:\test\access
目录并创建以下文件,Coffee1.java
:
package access;
import test.Coffee;
public class Coffee1 extends Coffee
{
public static void main(String[] args){
Coffee c=new Coffee();
c.service();
Coffee1 c1=new Coffee1();
c1.service();
}
}
我进口,扩大咖啡,对不对?那么为什么我不能创建该类的对象?
后来我评论的东西,并试图编译和执行程序
2:我跑
E:\test\access> javac Coffee1.java
,它编译。
如果我运行此:
E:\test\access> java access.Coffee1
它给了我一个错误说无法找到的主要方法。
测试文件夹中的Coffee.java也一样。为什么它不在这里工作?
我无法弄清楚这个软件包是如何工作的以及受保护的东西如何适用于其他软件包中的子类。请详细解释。