Java 基础 --- 抽象类

本文详细介绍了抽象类与抽象方法的概念,包括它们的特点、使用场景及限制条件。阐述了抽象类不可实例化的特性,以及如何通过子类覆盖抽象方法来实现具体功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

对方法,不断的向上抽取,只抽取方法的声明,不抽取方法的具体内容
既然功能定义不了内容,就直接 分号 ; 结束,不用大括号
void method();
这种函数,没有具体内容,用 abstract 标识
abstract void method();
抽象函数所在的类,也必须标记为抽象的

2 特点

1 方法只有声明,没有实现时,该方法就是抽象方法,需要被 abstract 修饰。抽象方法必须定义在抽象类中,该类也必须被 abstract 修饰
2 抽象类不可以被实例化 — 调用抽象方法,没有意义
3 抽象类必须 由其子类,覆盖了所有的抽象方法后,该子类才可以实例化,否则这个子类还是抽象类

3 细节

1 抽象类中有构造函数吗

有,用于给子类对象进行初始化

2 抽象类可以不定义抽象方法吗

可以,但是很少见,因为目的就是不让该类创建对象
AWT 的适配器对象就是这种类,通常这个类的方法有方法体,但是却没有内容

abstract class Demo{
  void show1() {}
  void show2() {}
}

3 抽象关键字不可以和哪些关键字共存

private 不行,抽象方法需要被覆盖,private,子类无法访问
static 不行,静态不需要对象,抽象方法运行没意义,需要创建对象
final 不行,final 不能被覆盖, abstract 就是为了覆盖的

4 抽象类和一般类的异同点

  相同点:
    抽象类和一般类都是用来描述事物的,都在内部定了成员。
  不同点:
    1,一般类有足够的信息描述事物。
       抽象类描述事物的信息有可能不足。
    2,一般类中不能定义抽象方法,只能定非抽象方法。
       抽象类中可定义抽象方法,同时也可以定义非抽象方法。
    3,一般类可以被实例化。
       抽象类不可以被实例化。

5 抽象类一定是个父类吗

是的,因为需要子类覆盖其方法后,才可以对子类实例化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值