Java面试题解析:重写与抽象方法

需积分: 11 0 下载量 33 浏览量 更新于2024-07-29 收藏 1.17MB PDF 举报
"Java面试题集锦" Java面试题涵盖了多个方面,包括语言特性、面向对象编程、类与对象、继承、多态、抽象方法、访问控制等核心概念。以下是一些关键知识点的详细解释: 1. **子类重写父类方法的原则**: - 访问权限不能降低:如果父类中的方法是`protected`或`public`,子类重写时必须保持或提高访问权限,不能改为`private`。 - 返回类型:子类重写方法的返回类型必须与父类完全相同,或者为父类返回类型的子类。 - 参数列表:参数列表必须完全相同,包括数量、类型和顺序。 2. **抽象方法(Abstract Methods)与静态方法**: - 抽象方法是不包含具体实现的方法,只能在抽象类中声明,用于强迫子类进行重写。 - 静态方法与对象无关,与类相关,因此不能被重写,也不能与抽象方法共存于同一方法中,因为静态方法不具备多态性。 3. **方法的覆盖与多态**: - 当父类引用指向子类实例时,如果调用一个被子类重写的方法,将执行子类的版本,这就是多态性。 - 在给定的程序中,`Child anObj = new Child(); Base baseObj = (Base) anObj; baseObj.test();` 这段代码虽然将`Child`对象赋给了`Base`类型的引用,但调用`test()`时会因为多态原则执行`Child`类的`test()`方法,输出结果为`Child.test()`。 4. **访问控制修饰符**: - `public`:可以被任何类访问。 - `protected`:可以被同一包内的类以及不同包的子类访问。 - `default`(无修饰符):可以被同一包内的类访问。 - `private`:只能被定义它的类访问。 5. **抽象类与抽象方法**: - 抽象类不能被实例化,只能作为其他类的基类。 - 如果一个类包含一个或多个抽象方法,那么该类必须声明为抽象类,用`abstract`关键字标识。 - 子类继承抽象类时,必须实现所有未被其父类实现的抽象方法,除非子类也是抽象类。 这些知识点对于理解Java面向对象编程的核心概念至关重要,同时也是Java面试中常见的考察点。掌握这些内容将有助于你在面试中表现出对Java语言的深入理解和应用能力。