Java面试题解析:继承与抽象方法

需积分: 9 3 下载量 99 浏览量 更新于2024-07-23 收藏 2.07MB PDF 举报
"达内科技2013java开发培训面试题资料合集,包含选择题、编程题等,旨在测试应聘者的Java基础知识和实战能力。" 本文将深入解析提供的Java面试题,帮助读者理解相关知识点。 1. **重写与重载(Overriding vs Overloading)** - 问题1探讨了子类如何重写父类的方法。关键点在于: - **访问权限**:子类重写父类方法时,访问权限不能更低。例如,父类的`protected`方法在子类中可以保持`protected`或更开放(`public`),但不能变为`private`。 - **返回类型**:返回类型必须相同或兼容。如果父类方法返回`int`,子类方法也可以返回`short`,因为`short`是`int`的子类型。 - **方法签名**:`C`选项展示了方法的重载,即参数列表不同(`int`替换为`long`)。 - 问题1的答案是AC,因为`A`是重载,而`C`是合法的重写。 2. **抽象方法(Abstract Methods)** - 问题2询问抽象方法是否可以是静态的。答案是A,因为抽象方法意味着需要在子类中实现,而静态方法是与类相关的,不依赖于对象实例。静态与抽象的结合违反了面向对象的原则。 3. **多态与方法调用(Polymorphism and Method Invocation)** - 问题3涉及多态的概念。在Java中,父类引用可以指向子类对象。当通过父类引用调用一个被子类重写的方法时,实际执行的是子类的版本。因此,代码`baseObj.test();`会输出`Child.test()`,即使`baseObj`是`Base`类型的引用。答案是D。 这些面试题突显了Java中的核心概念,包括继承、方法重写、多态性和访问控制。理解这些概念对于Java开发者来说至关重要,尤其是在面试场景中。在准备面试时,除了了解这些基本知识,还应关注异常处理、集合框架、IO流、线程、设计模式和JVM工作原理等方面的内容。此外,实际编程经验和项目经验同样重要,能够体现解决问题的能力和实际应用知识。