image.png

    Java中有四种访问权限,private、default(一般省略)、public、protected。

    private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

    default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。

    protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

    public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问。

    所谓的访问,可以分为两种不同方式:
    第一,通过对象实例访问;
    第二,直接访问。

    子类可以直接访问父类的public成员,也可以访问protected成员,但是不能访问private成员。换句话说子类除了父类的private成员不能访问,其他的都可以。
    其说是子类访问了父类的protected成员,不如说子类访问了自己的从父类继承来的protected成员。另一方面,如果该子类与父类不在同一个包里,那么通过父类的对象实例是不能访问父类的protected成员的。

    了解更多点击下方
    https://blog.csdn.net/u010876691/article/details/72724415?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164966907416781683977912%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164966907416781683977912&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-72724415.142^v7^control,157^v4^control&utm_term=java%E4%B8%AD%E7%B1%BB%E7%9A%84%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90&spm=1018.2226.3001.4187