Java中权限修饰符public、private、protected和default的区别

时间:2021-06-03 15:03:08

1、public

可以修饰类、成员变量和成员函数,没有任何限制,同一个包中,或者不同包中的类都可以*访问

2、private

可以修饰成员变量和成员函数,只能在本类中使用

3、default

(不写权限修饰符,就是default权限)可以修饰类、成员变量和成员函数,在同一个包中,可以*访问。如果子类和父类不在同一个包中,子类可以继承到父类中的default权限的成员变量和成员函数,但是由于权限不够,无法使用

4、protected

protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数

5、继承和访问权限

(1)、如果是在同一个包内发生继承:
子类可以继承父类所有的变量,但子类对象只能使用父类中public、protected、default成员变量,不可以使用private变量;
(2)、如果是跨包继承:
对于父类中的 public 变量,子类可继承,可使用;
对于父类中的 protected 变量,子类可继承,可使用,但非子类不可使用;
对于父类中的 default 变量,子类可继承,不可使用;
对于父类中的 private 变量,子类可继承,不可使用。