📜  Java抽象类和抽象方法的区别(1)

📅  最后修改于: 2023-12-03 15:16:35.598000             🧑  作者: Mango

Java抽象类和抽象方法的区别

在Java中,抽象类和抽象方法是面向对象编程(OOP)中常用的概念。本文将详细介绍Java抽象类和抽象方法的区别。

抽象类

抽象类是不能被实例化的类,即不能创建抽象类的实例对象。抽象类通常用来声明具有一些通用特征的类,为它们提供一个共同的基础。抽象类特点如下:

  1. 抽象类必须用 abstract 关键字修饰。
  2. 抽象类可以拥有普通的成员变量和成员方法。
  3. 抽象类可以拥有抽象方法,也可以没有抽象方法。
  4. 抽象类不能被实例化,即不能用 new 进行实例化。
  5. 抽象类可以被继承。

以下是一个抽象类的示例代码:

public abstract class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void move();
}

在上面的示例代码中,Animal类是一个抽象类,它包含一个普通的成员变量 name 和一个抽象方法 move()

抽象方法

抽象方法是没有具体实现的方法,即只有方法的签名,没有方法体。抽象方法通常定义在抽象类中,让子类去实现。抽象方法特点如下:

  1. 抽象方法必须用 abstract 关键字修饰。
  2. 抽象方法只有方法的签名,没有方法体。
  3. 抽象方法必须定义在抽象类中。
  4. 子类必须实现抽象方法,否则子类也必须是抽象类。

以下是一个抽象方法的示例代码:

public abstract class Animal {
    public abstract void move();
}

public class Cat extends Animal {
    @Override
    public void move() {
        System.out.println("Cat is running");
    }
}

在上面的示例代码中,Animal类包含一个抽象方法 move(), Cat类继承Animal类并实现了 move() 方法。

总结

抽象类是一个不能被实例化的类,通常用来声明具有一些通用特征的类,在其中定义抽象方法。抽象方法是没有具体实现的方法,定义在抽象类中,让子类去实现。切记子类必须实现抽象方法,否则子类也必须是抽象类。