相关疑难解决方法(0)

Java中的public,protected,package-private和private有什么区别?

在Java中,有没有关于何时使用每个访问修饰符,即默认明确的规则(包私有)public,protected并且private,同时使classinterface和处理继承?

java private protected public access-modifiers

3004
推荐指数
24
解决办法
201万
查看次数

从包外的子类访问受保护的变量

我经历了这么多的网站这解释了有关使用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)

任何解释都表示赞赏.

java

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×2

access-modifiers ×1

private ×1

protected ×1

public ×1