在Java中,有没有关于何时使用每个访问修饰符,即默认明确的规则(包私有)public,protected并且private,同时使class与interface和处理继承?
我经历了这么多的网站这解释了有关使用Java访问说明如走的java文件,Java的访问说明,像许多其他计算器的问题在这里.
所有这些人解释说,受保护的成员可以被任何子类(也可以是包外的子类)访问,并且可以由包级别类访问.
在试验受保护的成员时,我发现我无法从包外的子类访问受保护的成员.
检查下面的代码.受保护成员的公共类:
package com.One;
public class ProVars {
protected int i = 900;
protected void foo()
{
System.out.println("foo");
}
}
Run Code Online (Sandbox Code Playgroud)
尝试访问受保护成员的不同包中的另一个公共类:
package com.Two;
import com.One.ProVars;
public class AnotherClass extends ProVars {
public static void main(String[] args) {
ProVars p = new ProVars();
System.out.println(p.i);//the field ProVars.i is not visible(Compilation Error)
p.foo();//the method foo() from the type ProVars is not visible
}
}
Run Code Online (Sandbox Code Playgroud)
任何解释都表示赞赏.