Java中权限修饰符public、private、protected和default的区别
1、public
可以修饰类、成员变量和成员函数,没有任何限制,同一个包中,或者不同包中的类都可以自由访问
2、private
可以修饰成员变量和成员函数,只能在本类中使用
3、default
(不写权限修饰符,就是default权限)可以修饰类、成员变量和成员函数,在同一个包中,可以自由访问。如果子类和父类不在同一个包中,子类可以继承到父类中的default权限的成员变量和成员函数,但是由于权限不够,无法使用
4、protected
protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数
5、继承和访问权限
(1)、如果是在同一个包内发生继承:
子类可以继承父类所有的变量,但子类对象只能使用父类中public、protected、default成员变量,不可以使用private变量;
(2)、如果是跨包继承:
对于父类中的 public 变量,子类可继承,可使用;
对于父类中的 protected 变量,子类可继承,可使用,但非子类不可使用;
对于父类中的 default 变量,子类可继承,不可使用;
对于父类中的 private 变量,子类可继承,不可使用。