• 【JavaSE】抽象类与接口(上篇)


    ✨hello,进来的小伙伴们,你们好呐!✨

    ✈️✈️系列专栏【JavaSE

    🚜🚜本篇内容:JavaSE部分的抽象类与接口的概念初篇(对准知识点阅读喔!)

    🍊🍊作者简介:一名大二即将升大三的科班小白,我很平凡,学会努力!

    🍱🍱码云存放仓库gitee:https://gitee.com/king-zhou-of-java/java-se.git

    目录

    一、抽象类

    🍊一、概念

    🍊二、抽象类语法

    🍊三、抽象类特性

    🍊四、抽象类的作用


    一、抽象类

    🍊一、概念

    ⛵如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

    🍼比如:Animal类是动物类,在这个类中定义一个方法bark(),但由于Animal不是一个具体的动物,因此其内部的方法bark()无法具体实现。Dog是动物,继承Animal类,由于Dog是动物,狗叫汪汪汪,可以实现bark()方法。因此Animal类可以设计为抽象类

    972c9c70cbfd4525ba6388420afba0d3.jpeg

     🍊二、抽象类语法

    在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。🥞🥞

    1. // 抽象类:被abstract修饰的类
    2. public abstract class Demo2 {
    3. // 抽象方法:被abstract修饰的方法,没有方法体
    4. abstract public void eat();
    5. abstract public void drink();
    6. // 抽象类也是类,也可以增加普通方法和属性
    7. public String name;
    8. public String color;
    9. public void doclass(){
    10. System.out.println("做作业");
    11. }

    🍊三、抽象类特性

    🍓1. 抽象类不能直接实例化对象。

    1. public static void main(String[] args) {
    2. Demo2 de = new Demo2();//抽象类不能直接实例化对象
    3. }

    c06b61f2299a4bc390879f1935f04cf3.png

     我们发现,如果尝试实例化对象,编译器会自动报错!

    🍔2. 抽象方法不能是 private 的。

     abstract private void nice();//抽象方法不能是private的

    646853a1bc1d478484b14c7c8ade1347.png

     注意:抽象方法没有加访问限定符时,默认是public。

    🍇3. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写。

     abstract public final void methodA();//抽象方法不能被final static 修饰

    1f75b6389e20444d91362f40cf8b232e.png

    🍬4.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰 。

    情况1:我们实现父类的eat()方法,Cat子类可以不用定义成abstract类型。

    1. public abstract class Demo2 {
    2. abstract public void eat();
    3. public String name;
    4. public String color;
    5. class Cat extends Demo2{
    6. public void eat(){
    7. System.out.println(name+"猫吃鱼");
    8. }
    9. }

    情况2:我们只继承父类,但不重写eat()方法。(编译器会报错)

    e964eec485d744b8bba5f87477040abf.png

     解决方法:将Cat类型定义成abstract类型。

    eeb4227eafd9465ba74870047cf27651.png

     🍼🍼重要结论:

    🥪1. 抽象类中不一定包含抽象方法,但是有抽象方法的类一定是抽象类.
    🥞2. 抽象类中可以有构造方法,供子类创建对象时,初始化父类的成员变量。

    🍊四、抽象类的作用

    🍮🍮在实际工作中,当需求不应该由父类完成, 而应由子类完成. 那么此时如果不小心误用成父类了, 使用普通类编译器是不会报错的. 但是父类是抽象类就会在实例化的时候提示错误, 让我们尽早发现问题。

    🍤🍤学会充分利用编译器的功能,使得开发过程更加的方便,安全!

    💝OK,那么本篇到此告一段落,先给大家简介一下抽象类的概念,下一篇博客我将详细讲解接口的概念已经使用,感谢阅读,期待一键三连!🌯🌯

  • 相关阅读:
    allure
    提升树莓派性能的方法
    Go语言 context包源码学习
    SpringBoot整合kafka消费者注解详解
    污水治理要实现数字化,物联网技术必不可少
    【记录】GLICB2.25 升级时报错
    彻底搞懂Redis持久化机制,轻松应对工作面试
    京东架构师呕心整理:jvm与性能调优有哪些核心技术知识点
    java基于微信小程序的电子产品维修预约系统 uniapp 小程序
    win8和win10下,visual studio 2008 调试出现无响应的卡死问题解决
  • 原文地址:https://blog.csdn.net/m0_62426532/article/details/126236449