Java 受保护类中的protected变量

Java 受保护类中的protected变量,java,scjp,Java,Scjp,我试图在一个受保护的类中声明一个受保护的变量,但得到一个错误 protected class Car { protected int x = 9; } 根据Eclipse,类的有效修饰符是public、abstract和final 有人能解释一下吗?类(或接口)不能被保护,只能保护类中的字段和方法。但是,有一个例外,如果您有嵌套(或内部)类或接口,您实际上可以将它们标记为受保护。我假设您的类是顶级类,因此您会收到一条错误消息。如果Car是顶级类,那么将其设置为受保护没有任何意义受保护的

我试图在一个受保护的类中声明一个受保护的变量,但得到一个错误

protected class Car {
    protected int x = 9;
}
根据Eclipse,类的有效修饰符是public、abstract和final


有人能解释一下吗?

类(或接口)不能被保护,只能保护类中的字段和方法。但是,有一个例外,如果您有嵌套(或内部)类或接口,您实际上可以将它们标记为受保护。我假设您的类是顶级类,因此您会收到一条错误消息。

如果
Car
是顶级类,那么将其设置为
受保护
没有任何意义<代码>受保护的类的成员是该类和子类可见的对象。但是顶级类不是任何其他类的成员。如果您解释一下您认为的“受保护类”是什么,以及为什么希望
Car
成为受保护类,可能会有所帮助。然后,我们也许能够弄清楚您真正想要什么。澄清:在另一个类(嵌套或内部类)中声明的类可以得到保护。嵌套接口也可以。教程在这里不是很准确。是的,我可能不应该假设它不是一个嵌套类(或接口),我只是在寻找OP的参考,看到了,因为Oracle的教程并没有真正解释在这方面你不能做什么。我会更新答案