编译具有多个类的java文件

时间:2018-03-29 16:39:12

标签: java

我有以下一个文件,其中包含两个类,A和B,它们扩展了A.但我对如何编译以及如何命名文件感到困惑。 我认为我应该将它命名为B.java,因为主函数运行B但它告诉我它无法找到主函数。

    import static java.lang.System.out; 

class A {
    protected int x = 0xF0;
    protected int z; 
    public A(){
        z = fun(x);
        out.printf ("%x ", z);
    }

public int fun(int i) { return (i + 1); }
public static int staticFun (int i) { return (i + 3);}
}

class B extends A {
    protected int y = 0x11;
    public B() { 
        z = fun( z);
        out.printf ("%x ",z); 
}

public int fun(int i) { return (i + 2);}
public static int staticFun(int i) {return (i + 4);}

public static void main(String args[]){
    int i = 0;
    A a = new B();
    out.print ( a.fun( i)+ " ");
    out.println( a.staticFun(i));
    B b = new B();
    out.print ( b.fun (i) + " ");
    out.println( b.staticFun(i));
}

}

1 个答案:

答案 0 :(得分:1)

您需要至少创建一个类public,并将文件命名为公共类。 假设您公开class A,使用javac A.java编译文件将创建两个类文件 - A.classB.class。使用命令B.class执行java B将导致main执行class B方法。