本文说一下这三个常用关键字
根据权限由大到小是 public, protected, dedfault, private。
public:公共的,项目中的任何一个接口,类,异常都可以访问。
protected:一个包里的兄弟,或者一个包里的儿子访问。代码亲测。
private:只能自己或者自己的内部类访问。
default:有时候也称为friendly,针对本包访问而设计,任何处于本包的类,接口,异常都可以互相访问。
defalut与 protected的区别目前未知。因为别处都说protected是为同包里面的兄弟,和儿子 可见,即使这个儿子是外部包的,而default是专门同包里面的可见。但是我用代码试了一下发现并非如此,对于protected,其他包的子类照样不能访问。如下所示:
关系结构:OtherPackageSon 是 Me的子类,但是是在别的包下面。
Me里面有这么几个成员变量:
但是再看看OtherPackageSon里面的代码,就能看出来不同了:
所以事实证明,protected 并不如像网上所说的那么精准,什么同一个包下,和其子类。。但事实上,如果这个子类不跟父类一个包的话,照样不行。 那么这样的话,protected 与 default之间的关系,就更不清不楚了。