抽象类和接口

本文详细介绍了Java中的抽象类和接口。抽象类作为类的抽象,用于提取共同特征,不能实例化,用于被子类继承。接口是完全抽象的,支持多继承,包含常量和抽象方法。抽象类和接口在开发中各有应用,抽象类适用于半抽象情况,接口则增强程序的扩展性和解耦合性。子类继承抽象类必须实现其抽象方法,而实现接口必须覆盖所有抽象方法。
摘要由CSDN通过智能技术生成

1 抽象类

1.1 什么是抽象类?

  • 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类

  • 类到对象是实例化,对象到类是抽象

  • 抽象类的***注意点***:

    • 类本身是不存在的,所以抽象类无法创建对象(无法实例化),所以抽象类是用来被子类继承的,子类可以实例化对象
    • final和abstract是非法的修饰符组合,是对立的,不能联合使用
    • 抽象类的子类可以是抽象类
    • 抽象类虽然无法实例化,但有构造方法,构造方法是供子类使用的
    • 如果抽象类显式定义了有参构造,那么子类就无法编译通过,因为子类的super()无法调用父类的无参构造(父类已经有了有参构造)
    • 抽象方法:表示没有实现的方法,没有方法体的方法
      • 特点1:没有方法体,以分号结尾
      • 特点2:修饰符列表里有abstract
    public abstract void doSome(); 
    • 抽象类中不一定有抽象方法,但是抽象方法一定存在于抽象类中
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZjZp1JL7-1602859586751)(C:\Users\Yupeng\AppData\Roaming\Typora\typora-user-images\image-20200920115716167.png)]

    (图片转自视频教程,https://www.bilibili.com/video/BV1mE411x7Wt?p=17)

1.2 抽象类是什么类型?

抽象类属于引用数据类型

1.3 抽象类的定义

语法:在class前添加abstract关键字

[修饰符列表] abstract class 类名{
   
    // 类体;
}

1.4 抽象类的使用

重要结论:如果一个非抽象类要继承抽象类,必须将抽象类中的抽象方法进行实现(重写)。

// Animal类是抽象类
abstract class Animal{
   
    public abstract void move();
}

// Bird类不是抽象类,且继承Animal抽象类,则必须将抽象类中的抽象方法实现(重写)
class Bird extends Animal{
   
    public void move(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值