Java抽象类与接口的区别及接口实现规则详解

3星 · 超过75%的资源 需积分: 10 226 下载量 81 浏览量 更新于2024-09-13 1 收藏 369KB PDF 举报
Oracle认证的Java考试(12)主要关注Java编程语言在Oracle认证中的应用,特别是与Oracle Certified Professional, Java (OCP Java)相关的知识点。本部分着重讲解了抽象类和接口的区别与特性。 抽象类: 1. 抽象类是Java中的一个重要概念,它不能直接实例化,主要用于为子类提供一个模板或者父行为的框架。 2. 子类继承抽象类后,必须实现其定义的所有抽象方法,否则子类也将自动成为抽象类。 3. 抽象类可以包含抽象方法(无实现的方法)和非抽象方法(有实现的方法),但至少有一个抽象方法时,类才必须声明为抽象。 4. Java中的“单继承”原则并不适用于抽象类,一个类可以继承一个具体类和多个抽象类。 接口: 1. 接口是一种特殊的类,仅包含方法声明(没有方法体)和常量定义(默认为public static final)。接口中的方法默认都是抽象的,且不允许有实现。 2. 类实现接口时,接口中定义的所有方法都需要被实现,否则类会自动变为抽象类,除非将其声明为抽象接口。 3. 类可以同时实现多个接口,通过逗号分隔列出,如`public class A implements B, C, D {}`。 4. 接口中可以使用继承(extends)关键字,实现接口间的多继承特性。 接口中的属性和方法特性: - 所有的接口属性默认为public static final,意味着它们是常量。 - 接口中的方法都是public abstract,即没有实现的方法。 - 方法重写时,需遵循“两同两小一大”的规则:方法名和参数列表必须匹配,子类方法的返回值类型和抛出的异常类型要么更小(子类型)要么不变,访问权限不得小于父类方法。 在实际题目中,如问题95所述,涉及接口中的方法声明及其访问级别的理解。当一个接口方法doStuff(int s)没有明确指定访问级别时,默认按照接口的公共抽象方法处理。理解这些规则对于解答与接口相关的Java考试题目至关重要。 这部分内容强调了Java中抽象类和接口的基础概念、使用场景以及在实际编程中的注意事项,对准备Oracle OCP Java认证考试的学生来说是核心知识点。