abstract修饰符

1、abstract修饰符

abstract是Java中的一个修饰符,表示“抽象的”,只能用来修饰类和方法,不能修饰属性。如果用来修饰类,表示该类是一个抽象类;如果用来修饰方法,表示该方法是一个抽象方法。

但是我们要注意,并不是所有的类和方法,都可以用abstract来修饰。其中,private私有的、static静态的、final方法和final类,都不能用abstract来修饰!因为这些修饰符,不需要被继承下来重写

2、抽象类

abstract关键词表示该类是抽象的,介于接口和类之间

1)、抽象类不能被实例化,即不能创建抽象类的对象,一般是由子类进行实例化完成相关操作,声明抽象类的目的主要是为了对该类进行扩展;

 抽象类中可以有N个抽象方法,也可以有N个非抽象方法,抽象方法并不是必须的;

2)、抽象类中可以没有抽象方法,但如果一个方法是抽象方法,其所在的类必须是抽象类,否则编译阶段就报错;

3)、由于抽象类不能实例化对象,所以抽象类必须被继承后才能被使用;

4)、如果一个类继承了抽象类,该类要么重写抽象类中的所有抽象方法,要么自己也抽象化;

5)、一个类不能同时被abstract和 final 修饰,因为抽象类需要被子类继承,而final类不能被继承。​​​​​​​

public interface Animal {

     void eat();

     void sleep();
}
@Slf4j
public abstract class AbstractAnimal {

    /**
     * @return void
     * @Author 吹老师
     * @Description //定义一个抽象方法
     * @Date 00:13 2024/2/4
     * @Param []
     **/
    abstract void sports();

    /**
     * @return void
     * @Author 吹老师
     * @Description //定义一个非抽象方法
     * @Date 00:13 2024/2/4
     * @Param []
     **/
    void eat(){
        log.info("我在吃饭");
    }

}

3、 抽象方法

3.1、 简介

抽象方法是一种没有任何实现的方法,该方法的具体实现由子类来完成。抽象方法由abstract修饰,不能和final、static、private共同使用。如果一个类包含了若干个抽象方法,那么该类必须声明为抽象类,但抽象类中可以不包含抽象方法。

3.2、 语法

我们定义抽象方法的基本语法格式如下所示:

抽象方法不能是private私有的,因为抽象方法必须由子类重写实现。abstract关键词表示该方法是抽象的,method_name是抽象方法的名称,抽象方法的声明以分号结尾。

3.3. 特性

抽象方法具有如下几个特性:

抽象方法由abstract修饰,不能和final、static、private关键词共同使用;

抽象方法只有方法的声明,但没有方法体;

抽象方法必须存在于抽象类中;

子类继承父类时,必须重写父类中所有的抽象方法,除非自己也是抽象类;

4. 结语

至此,我们就把abstract修饰符相关的内容给大家介绍完毕了,最后我们梳理一下本文的关键点:

抽象类和抽象方法都要使用abstract关键字声明;

抽象类不能被实例化,不能使用 new关键字创建对象,抽象类的非抽象子类可以创建对象;

抽象类中不一定包含抽象方法,但有抽象方法的类必须是抽象类;

 一个抽象类中可以有0~n个抽象方法,也可以有0~n个具体方法;

 抽象类中的抽象方法只是声明,不包含具体实现;

 私有、静态方法、final方法不能声明为抽象方法;

 抽象类的子类必须实现抽象方法,除非该子类也是抽象类;

 面向抽象编程使得调用者只须关心抽象方法的定义,而不必关心子类的具体实现。

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

吹老师个人app编程教学

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

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

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

打赏作者

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

抵扣说明:

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

余额充值