相关疑难解决方法(0)

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

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

java private protected public access-modifiers

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

Java中的受保护的访问修饰符

我在理解java中的受保护访问修饰符(或其背后的设计)时遇到了一些麻烦.我认为这意味着包访问和访问通过继承包含抽象成员的类的对象.

我写了以下示例代码.我看到如果取消注释,注释掉的行会产生编译错误.为什么我可以通过Second中的Second对象访问pro,但不能通过Second中的First对象访问pro?

package first;

public class First {

    protected void pro(){
        System.out.println("Can see protected method");
    }

}
Run Code Online (Sandbox Code Playgroud)
package first;

public class InFirst {


    public static void main(String[] args){
        First fst = new First();
        fst.pro();
    }

}
Run Code Online (Sandbox Code Playgroud)
package second;

import first.First;

public class Second extends First {

    public static void main(String[] args){

        First fst = new First();

//      fst.pro();

        Second sec = new Second();
        sec.pro();

    }
}
Run Code Online (Sandbox Code Playgroud)

java protected access-modifiers

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

标签 统计

access-modifiers ×2

java ×2

protected ×2

private ×1

public ×1