JAVA中abstract关键字的使用浅析

在Java中,abstract是一个关键字,用于修饰类、方法或接口。它表示被修饰的元素具有抽象性质,即没有具体的实现。

  1. 抽象类(Abstract Class):使用abstract关键字修饰的类被称为抽象类。抽象类不能被直接实例化,只能作为其他类的基类来继承。抽象类可以包含普通方法和抽象方法。

    • 普通方法:在抽象类中可以定义具体的方法实现。
    • 抽象方法:在抽象类中可以定义没有具体实现的抽象方法,只有方法签名而没有方法体。子类必须实现(重写)所有父类中声明为抽象的方法。
  2. 抽象方法(Abstract Method):使用abstract关键字修饰的方法被称为抽象方法。它只有声明而没有具体的实现代码,并且必须位于抽象类或接口中。

    • 抽象方法只能存在于包含了 abstract 关键字声明的抽象 类或接口内部。
    • 子类必须提供对应父类所有未实现(即声明为 abstract 的) 的 方法进行 实际 实现。

使用 abstract 的主要目标是让子类型提供特定行为并强制执行该行为。

下面是一个简单的示例,展示了抽象类和抽象方法的用法:

// 抽象类
abstract class Animal {
    // 抽象方法
    public abstract void makeSound();

    // 普通方法
    public void sleep() {
        System.out.println("Animal is sleeping");
    }
}

// 具体子类实现抽象方法
class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.makeSound(); // 输出: "Dog barks"
        dog.sleep();     // 输出: "Animal is sleeping"
    }
}

测试结果

在上面的代码中,Animal是一个抽象类,其中包含了一个抽象方法makeSound()和一个普通方法sleep()Dog类继承自Animal并实现了父类中的抽象方法。

注意,由于抽象类不能被直接实例化,因此无法创建 new Animal() 的对象。但可以通过具体子类(如 Dog)来创建对象,并调用其实现了的具体行为(如 makeSound() 和 sleep() 方法)。

        最后的最后,可以给作者一个小小的却又大大的赞么,谢谢各位了!