java抽象类

关于抽象类:

一.抽象类语法:

1.抽象类的关键字是 abstract

2.抽象类也是类 它是可以有普通方法和属性的 甚至也可以有构造方法

抽象类语法 代码如下

//抽象类 关键字 abstract
abstract class Shape{
    //抽象方法
    public abstract void draw();
    //也可以有普通方法和属性
    public double getArea() {
        return area;
    }
    protected double area;
}

二.抽象类的特性

1.抽象类不能直接实例化对象

2.抽象方法不能是private的(会没办法来重写它,下面会讲到)

 

3.抽象方法不能被final和static修饰,因为抽象方法会被子类重写如果是final或者static修饰的话那么就不能再修改它了

4.抽象类必须被继承(这也就是2.中的为什么不能是private,因为权限小,只能在同一个包同一类中使用),而且在子类中必须重写父类的抽象方法,不然的话子类也会变成抽象类,也要使用abstract修饰

关于如何继承抽象类 代码如下

abstract class Shape{
    public abstract void draw();
}
//矩形类
class Rect extends Shape{
    @Override//注解是用来指定方法重写的,只能修饰方法并且只能用于方法重写
    public void draw() {
        System.out.println("画个矩形");
    }
}
//花类
class Flower extends Shape{
    @Override
    public void draw() {
        System.out.println("画朵花❀");
    }
}
public class Test2 {
    public static void drawMaps(Shape shape) {
        shape.draw();
    }
    public static void main(String[] args) {
        drawMaps(new Rect());
        drawMaps(new Flower());
    }
}

5.抽象类中不一定有抽象方法,但是又抽象方法的类一定是抽象类

6.抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量

三.抽象类的作用

抽象类本身是不能被实例化的,你要想用它,就得创建一个它的子类,然后在子类中重写这个抽象类的抽象方法。(可普通的类也可以来继承 重写等等,实现和抽象类一样的功能,那为什么还要用抽象类呢?)

原因如下:

使用了抽象类 也就相当于多出了一重编译器的校验

比如在实际的工作中,不应该让父类完成,应该让子类完成的,如果没写成抽象类,那么在普通类中是不会报错的,但是父类是抽象类,那么在实例化的时候,父类是不可以实例化的,就会报错。

所以使用抽象类,利用编译器的校验在开发中是很有效果的。大家可以多使用多写写来体会它的好处。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keild

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值