JAVA程序分析题,程序是否正确

package  abc;

class A {

        protected int x;

        protected void print() { System.out.println(x); }

}

package xyz;

import abc.A;

class B extends A {

        void test(A a, B b) {

                a.x = 100;

                a.print();

                b.x = 100;

                b.print();

        }

public void static main(String args[]){

        B b = new B();

    b.test();

}

}

这个程序哪错了啊

很多问题。。。首先因为A和B不属于同一个包,所以A类需要是由public访问修饰符修饰的类。并且也是因为两个类不在同一个包,在B中要调用A中的方法时,只能调用public级别的方法,无法调用protected修饰的方法。B中的main方法也有问题,void和static的位置反了

package abc;

public class A {
    public int x;

    public void print() {
        System.out.println(x);
    }
}


package xyz;

import abc.A;

public class B extends A {
    public void test(A a, B b) {
        a.x = 100;

        a.print();

        b.x = 100;

        b.print();

    }

    public static void main(String[] args) {

    }

}