-3
现在我简要阅读Java,并在简短的介绍中遇到了一个关于Java的问题。这个例子来自这本书。请参阅: 例如:为什么这段代码是错误的,在果壳中说Java是如此?
package de;
public class A
{
protected String x;
}
package uk;
import de.*;
class B extends A
{
//First One
public String getX(A a)
{
return "getX works" + a.x;//ERROR: x has protected access in A
}
//Second One
public String getX(B b)
{
return "getX works" + b.x; // WORKS!
}
}
的作者表示,由于B的情况下,没有获得A. 如果我们改变像第二个代码arbitary实例,那么编译器是幸福的,因为相同确切类型的实例始终可以看到彼此的受保护字段。 我无法理解作者的意思,那究竟是什么?
'import package de;'不是有效的导入语句。这已经使它错了...... – Jesper
'保护字符串x;'!='保护字符串x;'您是否混淆了'private'和'protected'? –
如果有什么不清楚的地方,你应该指定什么不清楚。他只是说你不能访问包含该受保护变量的类之外的受保护变量。 –