MST

星途 面试题库

面试题:Java多态下方法重写的访问权限规则之基础考察

在Java多态中,子类重写父类方法时,关于访问权限有哪些规则?请举例说明,比如假设父类有一个protected方法,子类重写该方法时访问权限可以如何设置?
49.7万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 访问权限规则
    • 子类重写父类方法时,重写方法的访问权限不能比父类被重写方法的访问权限更严格。例如,父类方法是protected,子类重写方法不能是private,但可以是protected或者public
    • 如果父类方法是public,子类重写方法必须是public,因为public是最宽松的访问权限,不允许更严格的权限设置。
    • 如果父类方法是private,该方法对子类不可见,子类不能重写它,而是相当于在子类中定义了一个新的方法,与父类的private方法没有重写关系。
  2. 举例说明
    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方法displayChild类重写方法使用protected访问权限,AnotherChild类重写方法使用public访问权限,均符合访问权限规则。