Java思维---抽象类与抽象方法

163 阅读1分钟

一、 提出新问题

定义Animal作为父类,其作用是抽象子类的共性 在这里插入图片描述

但是存在子类中方法未重写的情况,此时调用子类中的方法会返回父类中的方法体。

但是父类应当是抽象的共性集合体,不具备实际意义,因此应当有所限制。


二、抽象类的衍生

抽象的目的是为了概括(解释)具体事物

抽象——————具体

[动物]—————[狗]

// 抽象类
public abstract class Animal{}
// main函数
public class Application{
    public static void main(String[] argss){
        // 报错,因为Animal被定义为了抽象类,不能创建实例对象
        Animal animal =new Anilmal();
        // 而抽象类的子类可以创建实例
        Dogs dog =new Dogs();
    }
}

本质上Animal类不会有人使用,它是一个抽象的,它抽取了子类(猫狗)的共性(吃饭、睡觉、生病)作为使用。


三、抽象方法和抽象类的使用

抽象方法——————不能有实际的意义

由于动物的叫声有很多种,没有办法具体到某一指定叫声,因此是抽象的。

抽象方法一定基于抽象类,需要提前用abstract声明类是抽象类!

public abstract class Animal{
    public abstract void barking();
}
public class Dogs extends Animal{
    // IDEA中Alt+Enter快速重写方法
    public void barking(){
        System.out.println("吱吱吱");
    }
}

当一个类继承了一个抽象类的时候,该子类必须重写父类中的所有抽象方法。

IDEA中可以通过:

Alt+Enter——>Implement methods——>OK

进行抽象方法的自动重写。