Java基础 -- private, protected, public

本文说一下这三个常用关键字

根据权限由大到小是 public, protected, dedfault, private。

public:公共的,项目中的任何一个接口,类,异常都可以访问。

protected:一个包里的兄弟,或者一个包里的儿子访问。代码亲测。

private:只能自己或者自己的内部类访问。

default:有时候也称为friendly,针对本包访问而设计,任何处于本包的类,接口,异常都可以互相访问。

defalut与 protected的区别目前未知。因为别处都说protected是为同包里面的兄弟,和儿子 可见,即使这个儿子是外部包的,而default是专门同包里面的可见。但是我用代码试了一下发现并非如此,对于protected,其他包的子类照样不能访问。如下所示:

关系结构:OtherPackageSon 是 Me的子类,但是是在别的包下面。


Me里面有这么几个成员变量:


但是再看看OtherPackageSon里面的代码,就能看出来不同了:



所以事实证明,protected 并不如像网上所说的那么精准,什么同一个包下,和其子类。。但事实上,如果这个子类不跟父类一个包的话,照样不行。 那么这样的话,protected 与 default之间的关系,就更不清不楚了。


猜你喜欢

转载自blog.csdn.net/weixin_28774815/article/details/80948828