Skip to content

Java 抽象类和抽象方法

标签:Java
创建时间:2022/10/01 16:55:15

定义

抽象方法

使用 abstract 修饰的方法,没有方法体,只有声明。定义的是一种“规范〞,就是告诉子类必须要给抽象方法提供具体的实现。

抽象类

包含抽象方法的类就是抽象类。通过 abstract 方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

重点

  1. 有抽象方法的类只能定义为抽象类,否则会报错。
  2. 抽象类不能实例化,即不能 new 一个抽象类的对象。
  3. 抽象类可以包含属性、抽象方法、普通方法、构造方法。构造方法不能用用来 new 实例,同普通方法只能被子类实例调用。
  4. 抽象类只能用来被继承。
  5. 抽象方法必须被子类实现。
  6. 抽象类的意义在于为子类提供统一的、规范的模板,子类必须实现抽象类中的所有抽象方法。

代码实现

需求

  1. 定义一个抽象类,包含吃食物和做运动两个抽象方法。
  2. 定义一个球员类继承抽象类,实现吃食物和做运动两种方法。

代码

java
public abstract class People {
    abstract public void eat(String food);
    abstract public void run(int h);

    public static void main(String[] args) {
        Star star = new Star("Messi");
        star.eat("饺子");
        star.run(2);
    }
}

class Star extends People {
    String name;

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

    @Override
    public void eat(String food) {
        System.out.printf("%s今天吃%s\n",this.name,food);
    }

    @Override
    public void run(int h) {
        System.out.printf("每天运动 %d 小时\n",h);
    }
}

基于 MIT 许可发布