亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 抽象类与抽象方法完全指南

Java 抽象类与抽象方法

本教程通过示例驱动方式,清晰讲解 Java 抽象类与抽象方法,并解释 Java 中抽象的实现机制。

Java 抽象类

在 Java 中,抽象类不能被实例化。abstract 关键字标记类为抽象。例如:

// 创建抽象类 abstract class Language { // 字段和方法 } ... // 尝试创建对象 Language // 抛出错误 Language obj = new Language();

抽象类可同时包含具体(普通)方法和抽象方法。例如:

abstract class Language { // 抽象方法 abstract void method1(); // 普通方法 void method2() { System.out.println("This is regular method"); } }

了解更多普通方法,请参阅 Java 方法。


Java 抽象方法

抽象方法无方法体;它声明子类必须履行的契约。使用 abstract 关键字定义,如:

abstract void display();

因无方法体,语句以分号结尾。若类声明抽象方法,该类本身必须声明为抽象,否则编译报错:

// error // 类应声明为 abstract class Language { // 抽象方法 abstract void method1(); }

示例:Java 抽象类与方法

虽然抽象类不能直接实例化,但具体子类可继承并使用其成员。例如:

abstract class Language { public void display() { System.out.println("This is Java Programming"); } } class Main extends Language { public static void main(String[] args) { Main obj = new Main(); obj.display(); } }

输出

This is Java programming

此处,抽象类 Language 定义了具体方法 display()。子类 Main 继承该方法并通过实例调用。


实现抽象方法

抽象类声明抽象方法时,每个具体子类必须提供实现。例如:

abstract class Animal { abstract void makeSound(); public void eat() { System.out.println("I can eat."); } } class Dog extends Animal { public void makeSound() { System.out.println("Bark bark"); } } class Main { public static void main(String[] args) { Dog d1 = new Dog(); d1.makeSound(); d1.eat(); } }

输出

Bark bark I can eat.

子类 Dog 实现了抽象方法 makeSound(),同时继承了具体方法 eat()。

注意:若 Dog 不重写 makeSound(),它自身必须声明为抽象类。


访问抽象类的构造器

抽象类可像普通类一样定义构造器。子类通过 super() 调用父类构造器。例如:

abstract class Animal { Animal() { // 初始化逻辑 } } class Dog extends Animal { Dog() { super(); // 额外初始化 } }

记住 super() 必须是子类构造器的第一条语句。


Java 抽象

抽象类和抽象方法是 Java 实现抽象的主要工具。抽象隐藏不必要的实现细节,仅向用户暴露核心接口。这简化复杂系统并提升灵活性。

例如,摩托车刹车执行相同的高层功能 —— 减速,但内部机制在不同车型间可能不同。

示例 3:Java 抽象

abstract class MotorBike { abstract void brake(); } class SportsBike extends MotorBike { public void brake() { System.out.println("SportsBike Brake"); } } class MountainBike extends MotorBike { public void brake() { System.out.println("MountainBike Brake"); } } class Main { public static void main(String[] args) { MountainBike m1 = new MountainBike(); m1.brake(); SportsBike s1 = new SportsBike(); s1.brake(); } }

输出:

MountainBike Brake SportsBike Brake

每个具体子类提供自己的 brake() 实现,展示抽象如何将接口与实现解耦。

注意:接口也可用于在 Java 中实现抽象。


关键点回顾

java

  1. 掌握 C# 抽象类与抽象方法:实战指南
  2. Java 变量与字面量:全面指南
  3. Java 类与对象:实用指南
  4. 深入理解 Java final 关键字:变量、方法与类的不可变性
  5. Java instanceof 运算符完全指南:用法、继承与接口检查
  6. 精通 Java 嵌套类与内部类:类型、示例与最佳实践
  7. 深入理解 Java 静态嵌套类:用法、差异与实战示例
  8. 精通 Java 匿名内部类:定义、语法与实战示例
  9. Java 单例模式详解:安全实现与使用指南
  10. 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
  11. 掌握 Java 泛型:构建可复用、类型安全的代码
  12. 掌握 Java 文件操作:java.io 包下的创建、读取、写入与删除