面试题答案
一键面试类B对类A成员的访问权限
- default修饰的成员变量和方法:
- 访问权限:类B可以访问类A中default修饰的成员变量和方法。
- 原因:default修饰符(即不写任何修饰符)的访问权限是包访问权限。类A和类B在同一个包中,所以类B可以访问类A中default修饰的成员。
- protected修饰的成员变量和方法:
- 访问权限:类B可以访问类A中protected修饰的成员变量和方法。
- 原因:protected修饰符的访问权限是包内和子类可见。类B既和类A在同一个包中,又是类A的子类,满足protected修饰符的访问条件,所以可以访问。
类C对类A成员的访问权限
- default修饰的成员变量和方法:
- 访问权限:类C不能访问类A中default修饰的成员变量和方法。
- 原因:default修饰符具有包访问权限,类C和类A不在同一个包中,所以类C无法访问类A中default修饰的成员。
- protected修饰的成员变量和方法:
- 访问权限:类C可以通过继承关系访问类A中protected修饰的成员变量和方法。
- 原因:protected修饰符除了包内可见,对子类也是可见的。类C虽然和类A不在同一个包中,但类C是类A的子类,所以可以通过继承关系访问类A中protected修饰的成员。