抽象类

什么是抽象类?为什么要有抽象类?

需求:定义一些图形类,有Circle圆类,Rectangle矩形类,Triangle三角形类等,它们都有相同的功能:求面积。

此时这些图形有一个公共的父类叫做Graphic,它有大家共同的方法 area(),但是这个方法在父类中无法给出具体的适用于所有子类的统一实现,所以这个方法必须是抽象方法。Java中规定,一个类如果包含抽象方法,那么这个类就必须是抽象类。

抽象类的语法

【其他修饰符】 abstract class 抽象类名{
    【其他修饰符】 abstract 返回值类型 方法名(【形参列表】); //抽象方法是没有方法体
}

抽象类的特点

  • 抽象类不能直接创建对象。

  • 抽象类是用来被继承的。可以创建非抽象子类的对象。子类如果是非抽象的,那么必须重写抽象父类所有的抽象方法。
    在这里插入图片描述

  • 如果类中包含抽象方法,类必须是抽象类。反过来,抽象类可以没有抽象方法。
    在这里插入图片描述

package com.gj.special;

public abstract class Graphic {
    public abstract double area();
}
package com.atguigu.special;

public  class Circle extends Graphic{
    private double radius;//半径

    public Circle(double radius) {
        this.radius = radius;
    }

    //重写抽象方法的快捷键:Ctrl + i 或 Ctrl + O
    @Override
    public double area() {
        return Math.PI * radius * radius;
    }
}
package com.atguigu.special;

public class TestGraphic {
    public static void main(String[] args) {
       /* Graphic g = new Graphic() ;//抽象类不能直接实例化
        System.out.println(g.area());*/

        Circle c = new Circle(2.5);
        System.out.println(c.area());

    }
}
上一篇:2024年数据分析5大趋势


下一篇:边缘计算与物联网(IoT):IoT设备管理和运维