Java 基础知识:接口和抽象类 在 Java 编程中,接口和抽象类是两个重要的概念,它们都用于实现面向对象编程中的抽象和封装,但在使用方式和功能上有所不同。 1. 接口(Interface) 接口是一种抽象的数据类型,它定义了一组方法的规范,但没有提供具体的实现。在 Java 中,接口使用 interface 关键字定义。接口中的方法默认是抽象的,不包含方法体。接口可以包含常量和默认方法(Java 8 及以上版本)。 接口的特点: * 不能被实例化 * 只能定义抽象方法和常量 * 不能包含具体方法 * 方法默认是 public 和 abstract 的 示例代码: interface Animal { void sound(); // 抽象方法 default void eat() { System.out.println("Animal is eating."); // 默认方法 } } class Dog implements Animal { @Override public void sound() { System.out.println("Dog barks."); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.sound(); dog.eat(); } } 2. 抽象类(Abstract Class) 抽象类是一种不能被实例化的类,它可以包含抽象方法和具体方法。在 Java 中,抽象类使用 abstract 关键字定义。抽象类可以有构造方法,但不能直接创建对象。抽象类的子类必须实现所有的抽象方法,或者自己也声明为抽象类。 抽象类的特点: * 不能被实例化 * 可以包含抽象方法和具体方法 * 可以有构造方法 * 子类必须实现所有的抽象方法 示例代码: abstract class Shape { abstract void draw(); // 抽象方法 void display() { System.out.println("Shape is displayed."); // 具体方法 } } class Circle extends Shape { @Override void draw() { System.out.println("Circle is drawn."); } } public class Main { public static void main(String[] args) { Circle circle = new Circle(); circle.draw(); circle.display(); } } 3. 接口 vs. 抽象类 * 接口只能定义抽象方法和常量,而抽象类可以包含抽象方法、具体方法和常量。 * 类可以实现多个接口,但只能继承一个抽象类。 * 接口中的方法默认是 public 和 abstract 的,而抽象类中的抽象方法可以有不同的访问修饰符。 * 接口用于定义行为规范,而抽象类用于实现类的继承关系。 总结:接口和抽象类是 Java 中实现抽象和封装的重要工具。接口定义了一组方法的规范,而抽象类提供了一种无法实例化的类,用于定义抽象和具体方法。通过合理使用接口和抽象类,我们可以更好地组织和设计我们的 Java 程序,实现代码的重用和灵活性。
- 粉丝: 453
- 资源: 498
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助