Java 四种访问修饰符详解

访问修饰符权限

PS 红色是不可访问

private

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用
我们想要在别的类中调用私有成员 就需要建立一个公有的方法 在公有方法中使用这个私有成员 也就是面向对象中的封装。
在继承中,私有成员无法被继承,子类无法使用父类的私有成员。
在这里插入图片描述

public:

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用
在其他任何地方 都可以实例化对象进行访问
在继承中,被public所修饰的成员能被所有的子类继承下来并使用。
在这里插入图片描述

protected:

同包情况下

在当前类中 main方法之外可以借助名称使用 在main方法中需要实例化对象使用
在同包的其他类中,可以用实例化对象访问使用
在同包的子类中,被protected修饰的成员可以被继承访问,也就是可以实例化父类或是子类的对象使用
在同包其他类中,且不是子类,要使用子类的类中,同一个包中,可以使用实例化父类或是子类的对象使用

不同包情况下

在不同包的其他类中,不可以用实例化对象访问使用
在不同包的其他子类中,被protected修饰的成员可以被继承访问,但是只能通过实例化子类对象使用。
在不同包的其他类中,且不是子类,要使用子类的类中,是不能通过例化子类对象调用父类的受保护成员的 因为这个时候相当于父类中的受保护成员跨包了。如果想要通过子类对象调用父类的受保护的成员,需要重新覆写父类的这个成员。
在实际的开发中也许很少用到protected来作访问控制,但是java的这个修饰符设计很巧妙,思想很高。同包中可以看做是public,异包中可以看做private
在这里插入图片描述

package/friendly/default

同一包中的所有类都能访问。所修饰的成员只能被该类所在同一个包中的子类所继承下来。
别的包中的子类是没法访问的。
在这里插入图片描述

总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NuanShuTT/article/details/108447100