从不同的包扩展超类

Extend a superclass from different packages

我的目标是测试受保护的访问级别修饰符,在定义上,protected 成员可以通过同一包中的任何 class 和任何包中的任何子 class 访问。

假设我在 java 项目 test1

中有一个 test1 class
public class test {
    protected int id;
    protected String Name;
    private int age;

public test(int id, String name) {
    this.id = id;
    this.Name = name;
    this.age = 10;
    }

public void setAge() {
    this.age = 20;
    }
}

而且我在 java 项目 test2 中有另一个 class test2,因为它们来自不同的 java 项目,所以它们来自不同的包

public class test2 extends test {

}

但是 test2 中有一个错误,它说 "test cannot be resolved to a type",我该如何解决这个问题?我应该写一些导入语句吗?怎么样?

a class from another package 的任何用法一样,您可以使用导入语句:

import com.foo.bar.whatever.test;

或fully-qualify类名:

public class test2 extends com.foo.bar.whatever.test {

顺便说一句,Java 类 通常以大写字母开头,即 TestTest2,而不是 testtest2

你应该把两个 类 放在一个包中,并在你的类文件的最开头写一个这样的语句:

package projectname.packagename; 

public class test {
...
}
package projectname.packagename;  
import projectname.packagename.test; 

public class test2 extends test {
...
}