Java学习之:抽象方法和抽象类的构造及使用

抽象类和抽象方法的构造

  • class 前使用 abstract 修饰的类叫抽象类
  • 要构造抽象方法,其所在的类一定要是抽象类
  • 在方法面前添加 abstract 并且去掉大括号,最后用分号结尾的方法就是抽象方法
    在这里插入图片描述

抽象类和抽象方法的使用

  • 不能直接通过 new 关键字来创建抽象对象,错误示范如下:
    在这里插入图片描述

  • 如果要使用抽象类则 必须用一个子类来继承抽象父类;而且子类必须覆盖重写(override) 父类当中所有的抽象方法,即:

    • 去掉抽象方法的 abstract 关键字
    • 补上方法体大括号
      在这里插入图片描述
  • 然后就可以按照正常的步骤来创建一个对象进行方法的调用了。
    在这里插入图片描述

使用抽象类和抽象方法的注意事项

  • 抽象类不能直接通过 new 创建对象,只能创建其非抽象的子类。

  • 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
    在这里插入图片描述

  • 抽象类中,不一定包含抽象方法,但是有抽象方法的类一定是抽象类
    在这里插入图片描述

    • 这个抽象类就没有抽象方法,依然是一个抽象类
    • 这种没有任何抽象方法的抽象类在设计模式中会进行讲解
    • 但是具有抽象方法的类一定是抽象类
  • 抽象类的子类,必须重写抽象父类中 所有 抽象方法之后,才可以进行对象的使用 new 关键字创建。如果子类没有重写抽象父类所有的抽象方法,那么子类也必须是一个抽象类。
    在这里插入图片描述

    • 创建一个子类 Dog,这个子类只对父类 Animal 中的一个抽象方法 eat 进行重写,因此还有一个 sleep 抽象方法没有进行重写,所以这个子类依然是一个抽象类。
      在这里插入图片描述

    • 创建一个 孙子类 DogGolden ,这个类继承自 Dog 抽象类,并把 sleep 这个抽象方法进行重写,因此,到这个孙子类 DogGolden 为止,所有的抽象方法都重写完毕,因此他不在是一个抽象类,因此可以直接用 new 关键字来创建 DogGolden
      在这里插入图片描述

    • 上述的关系可通过下述直观图看到:
      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

暖仔会飞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值