• 抽象类和接口(Abstract and Interface)精湛细节


    来源-微信公众号:soqivijw

    下雨都怕淋,可是有的雨大家都喜欢淋,为什么?(答案在文末)

                                                                                                                                    ——趣味拓展

    抽象类和接口

    abstract

    语法格式

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

    重要细节:

    • 抽象类不能实例化对象
    //抽象方法不能有方法体 {},即不能new实现public abstract void eat();
    
    • 抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的。

    • 抽象方法就是没有实现的方法 (父类方法如果具有不确定性,我们可以考虑将其设计为abstract),

    • 所谓没有实现就是没有方法体

    • 一个类中存在抽象方法,那么这个类必须声明为抽象类

    • 抽象类可以没有抽象方法,抽象方法一定在抽象类中

    • abstract只能修饰抽象类和抽象方法

    • 抽象类还是类!可以有任意成员

    如果一个类继承了抽象类,则必须实现抽象类中的所有抽象方法,或者它也声明为抽象类

    //~比如abstract class Animal{public abstract void fly();}/* oneabstract class bird extends Animal{
    }*/// twoclass Brid extends Animal{@Override    public void fly() {        }}

    抽象方法不能使用private、final和static(和重写无关)关键字修饰,很明显这是违背abstract的初衷的

    interface

    语法格式

    [修饰符列表] interface 接口名{}{
    }class 类名 implements 接口{
    }

    重要细节:

    • like-a  (继承是is-a)符合标准的可以考虑设计为接口

    • 接口是完全抽象的。(抽象类是半抽象)也可以说接口是特殊的抽象类。

    • 语法格式:[修饰符列表] interface 接口名{}

    • 抽象类实现接口的话,可以不实现接口中的方法

    • 接口支持多继承,一个接口可以继承多个接口,担任各自功能,解耦性强--比如电脑同时有多个USB接口,来分担不同的功能

    • 接口也是一种“引用数据类型”,编译之后是一class字节码文件。

    • 接口中主要包含两部分内容,一部分是:常量。一部分是:抽象方法。在JDK8之后接口类可以有静态方法,默认方法,也就是说接口可以有方法的具体实现,但是需要加default关键字修饰

        接口中所有的元素都是public修饰的。在下面案例可以看到-->冗余

        接口中的抽象方法定义时:public abstract修饰符可以省略

        

        接口中常量的public static final也是可以省略的

        (即写一个数据类型就会默认加上public static final)

        牢牢记住哈-->一个细节几小时沉默

                                    ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​答案-->淋浴

  • 相关阅读:
    PC - 史上最简单的远程访问群晖 NAS 方法
    在QML委托代理机制中使用C++数据模型
    网络安全准入技术之MAC VLAN
    虚拟化设备-Virtio介绍
    LeetCode 78 Java 实现
    eBPF学习笔记(二)—— eBPF开发工具
    递归是会更秀strtok
    Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法
    阿里测试8年经验,靠着这份理解,我才得以生存下来
    Python开源自动化工具Playwright安装及介绍
  • 原文地址:https://blog.csdn.net/m0_64880608/article/details/125989896