Java中的抽象类和抽象方法

手写笔记转换

抽象方法

定义

抽象方法是没有方法体的方法。它只是声明了方法的签名(方法名、返回类型、参数),而没有提供具体的实现。抽象方法只能出现在抽象类中,且必须由子类实现。

特点

  • 没有方法体: 抽象方法只定义方法的签名,没有具体实现。
  • 必须由子类实现: 如果一个类继承了抽象类,必须实现抽象类中的所有抽象方法,除非子类本身也是抽象类。

语法格式

1
2
3
abstract class ClassName {
    abstract void methodName();
}

抽象类

定义

抽象类是一个不能直接实例化的类,通常包含抽象方法(未实现的方法)和已实现的方法。抽象类作为其他类的父类,提供通用的接口和功能,而让子类去实现和完善。

特点

  • 不能实例化: 你不能直接创建抽象类的对象,只能通过其子类来实例化。

  • 可以有抽象方法和非抽象方法

    • 抽象类可以包含抽象方法(没有方法体的方法),也可以包含已实现的方法(有方法体的普通方法)。
    • 抽象类的子类必须实现所有抽象方法,除非子类本身也是抽象类。
    • 抽象类不一定包含抽象方法,但是有抽象方法的一定是抽象类
  • 构造方法: 抽象类可以有构造方法,构造方法可以被子类调用,用于初始化父类的成员变量。

  • 可以有字段(成员变量): 抽象类可以定义实例字段(成员变量)和静态字段。

  • 可以实现接口: 抽象类可以实现接口,因此也可以被用于约定子类需要实现的接口方法。

  • 抽象类不能被final修饰:

    Java中的抽象类是用来被继承的,而final修饰符用于禁止类被继承或方法被重写,因此,抽象类和final修饰符是互斥的,不能同时使用。

语法格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
abstract class ClassName {
    // 抽象方法(没有方法体)
    abstract void abstractMethod();

    // 非抽象方法(有方法体)
    void concreteMethod() {
        System.out.println("This is a concrete method.");
    }

    // 可以有构造方法
    public ClassName() {
        System.out.println("Abstract class constructor.");
    }
}
最后更新于 2025-04-16 14:45 UTC
그 경기 끝나고 좀 멍하기 있었는데 여러분 이제 살면서 여러가
使用 Hugo 构建
主题 StackJimmy 设计