从不同的包扩展超类



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

假设我在java项目test1中有一个test1类

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中有另一个类test2,因为它们来自不同的java项目,所以来自不同的包

public class test2 extends test {
}

但test2中有一个错误,它说"测试无法解析为类型",我该如何修复?我应该写一些重要声明吗?怎样

与使用其他包中的类一样,您可以使用导入语句:

import com.foo.bar.whatever.test;

或完全限定类名:

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 {
...
}

最新更新