Java面试题更新 2026-08-05

在Java语言中,访问控制修饰符具体分为哪几种?它们各自的作用范围是怎样的?

技术原理Java

考察说明

考查对Java访问控制修饰符基本概念及其可见性范围的掌握。

回答思路

  1. 【回答框架 1】Java中访问修饰符有四种:private、default(无修饰符)、protected和public。private修饰的成员仅在同一类内可见;default(即不加任何修饰符)允许同一个包内的其他类访问;protected允许同包内访问,并允许不同包子类访问;public则对所有类公开访问。
  2. 【回答框架 2】访问修饰符用于控制封装性,合理设置可以隐藏实现细节,仅暴露必要的接口。默认(default)访问权限在Java中常被称为包级私有,适合同包内协作;protected则在使用继承时提供受限的开放。
  3. 【回答框架 3】在接口中的成员默认是public,且不允许使用其他修饰符(Java 9之后接口中私有方法除外),这与类中的默认行为不同。另外,局部变量不能使用访问修饰符,其作用域仅在声明处的方法或代码块内。
  4. 【回答框架 4】访问修饰符与继承相关:子类重写父类方法时,不能降低访问权限。例如,父类方法为public,子类重写时不能改为protected或private,需保持或扩大访问范围,否则编译错误。
  5. 【关键点 1】四种修饰符的可见性排序:private < default < protected < public。
  6. 【关键点 2】protected包含包访问权限,并额外允许不同包中的子类访问。
  7. 【关键点 3】重写方法时不能缩小访问权限。
  8. 【关键点 4】局部变量无访问修饰符,其作用域仅限所在方法或代码块。
  9. 【易错点 1】容易混淆protected与default,误以为protected仅限子类而忽略同包访问。
  10. 【易错点 2】接口成员默认public,但误以为接口中可定义private方法(除Java 9及以上私有方法外)。
  11. 【易错点 3】重写方法时降低访问权限是常见错误,导致编译失败。