面试题答案
一键面试- 访问权限规则:
- 子类重写父类方法时,重写方法的访问权限不能比父类被重写方法的访问权限更严格。例如,父类方法是
protected
,子类重写方法不能是private
,但可以是protected
或者public
。 - 如果父类方法是
public
,子类重写方法必须是public
,因为public
是最宽松的访问权限,不允许更严格的权限设置。 - 如果父类方法是
private
,该方法对子类不可见,子类不能重写它,而是相当于在子类中定义了一个新的方法,与父类的private
方法没有重写关系。
- 子类重写父类方法时,重写方法的访问权限不能比父类被重写方法的访问权限更严格。例如,父类方法是
- 举例说明:
在上述代码中,class Parent { protected void display() { System.out.println("Parent's protected method"); } } class Child extends Parent { // 子类重写为protected,符合规则 protected void display() { System.out.println("Child's overridden protected method"); } } class AnotherChild extends Parent { // 子类重写为public,也符合规则 public void display() { System.out.println("AnotherChild's overridden public method"); } }
Child
类和AnotherChild
类都重写了Parent
类的protected
方法display
,Child
类重写方法使用protected
访问权限,AnotherChild
类重写方法使用public
访问权限,均符合访问权限规则。