抽象方法是什么?如何判断

抽象方法是一种没有具体实现的方法,它只定义了方法的签名(名称、参数和返回类型),但不包括方法体。在Java中,抽象方法用来指定一个类必须提供的行为,而不提供每个行为的具体实现。这样,继承抽象方法的类必须提供每个抽象方法的具体实现,除非该类本身也被声明为抽象类。


前言

看视频学习的时候,总是听到这个名称,自己有点印象,但是比较模棱两可,写个文章加强一下概念知识


一、如何定义抽象方法

abstract class AbstractClass {
    // 抽象方法声明,没有方法体
    public abstract void abstractMethod();

    // 普通方法可以有具体的实现
    public void nonAbstractMethod() {
        System.out.println("This is a non-abstract method.");
    }
}


注意,如果一个类中包含了抽象方法,该类必须被声明为抽象类。抽象类本身不能被实例化,只能被继承。

二、如何判断一个方法是否为抽象方法(有点纸上谈兵了)

1.方法(仅供参考——不一定正确)

  1. 关键字:方法前面有abstract关键字。(也不一定——有一定是,没有不一定不是)
  2. 方法体:方法没有具体的实现,即没有花括号{}包裹的代码块,而是直接以分号;结束。
  3. 所在类的类型:抽象方法只能存在于抽象类或接口中。如果一个类中包含抽象方法,那么这个类也必须被声明为抽象类(使用abstract关键字)。接口中的方法默认是抽象的,即使不显式使用abstract关键字

2.特别说明

  • 在接口中定义的方法(在Java 8之前的版本)自动被认为是抽象方法,即使没有使用abstract关键字。从Java 8开始,接口还可以包含默认方法和静态方法,这两种方法都有具体的实现。
  • 函数式接口是一种特殊的接口,它定义了一个抽象方法。由于这个特性,它们可以被实例化为lambda表达式或方法引用。尽管函数式接口可能还包含默认方法和静态方法,但它们仍然只有一个抽象方法。
  • 抽象类可以没有任何抽象方法,但包含抽象方法的类必须声明为抽象类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值