java public protected private default的区别
修饰类:public( 所有包可见) default(同一个包下可见) 没有private class和protected class
修饰属性和方法:
按访问的方式分为四种:
1类本身 2子类 3同一个包下的类 4外部包的类
public:可以被其它所有类访问
private:只可以被类本身访问
protected:可以类本身,子类(只能在子类内部通过this.属性名/方法名访问,而无法使用子类对象.protected属性/方法进行来访问),同一个包下的类访问(除了外部包)
default: 可以被类本身,同一个包下的类(除了子类,外部包的类)访问,没有加修饰符,认为是friendly
权限 | 类本身 | 子类 | 同一包下的类 | 外部包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
private | √ | × | × | × |
protected | √ | √ | √ | × |
default | √ | × | √ | × |