• 抽象类与接口


    抽象类,抽象方法,接口的总结

    抽象方法 抽象类 接口
    抽象方法没有方法体,交给子类实现 抽象类不一定有静态方法,有静态方法的一定是抽象类。 JDK1.8之前:接口里只能写方法的声明,而不能写方法的具体实现
    JDK1.8之后:接口可以对方法的声明写具体实现。
    抽象方法修饰符
    不能是private,final,static(因为需要子类实现)。
    不能被实例化,只能被继承。 接口中没有构造方法,不能被实例化。
    抽象方法必须定义在抽象类或接口中。 抽象类的子类可以不实现所有的抽象方法,但也必须作为抽象类。(抽象派生类) 接口只能继承接口,不能继承类,接口支持多继承。
    抽象类的构造器不能定义为私有。(子类构造方法会调用父类构造方法。) 接口中定义的成员变量默认是public static final修饰的静态常量
    抽象类不能定义为final,final (修饰的类不能被继承)。 接口中的方法:
    默认是public abstract 修饰的抽象方法。
    JDK1.8前不能有静态方法,不能有普通方法。
    JDK1.8后可以有静态方法,可以有普通方法。
    抽象类可以实现接口,可以继承具体类,也可以继承抽象类。 接口中定义的内部类,默认是public static 修饰的静态内部类。
    抽象类中有普通方法,也可以有静态方法。

    抽象类和接口的异同:

    相同点不同点
    ① 抽象类和接口都不能被实例化① 抽象类有构造方法,接口没有构造方法
    ② 抽象类和接口都可以定义抽象方法,子类/实现类必须覆写这些抽象方法② 抽象类可以包含普通方法,接口中只能是public abstract修饰抽象方法(Java8之后可以)
    ③ 抽象类只能单继承,接口可以多继承
    ④ 抽象类可以定义各种类型的成员变量,接口中只能是public static final修饰的静态常量

    感谢某位不知名博主的总结,在本博客中借鉴了很多对方的总结知识点:传送门

  • 相关阅读:
    面试系列Spring:循环依赖Spring是如何解决的
    资产收集&溯源案例
    代码随想录第五十七天
    代码随想录刷题记录 1 - 数组
    基于WPF重复造轮子,写一款数据库文档管理工具(一)
    如何在 🤗 Space 上托管 Unity 游戏
    C# U2Net Portrait 跨界肖像画
    快速创建微信小程序,注册即认证,无需300元认证费
    输入输出管理:I/O控制方式
    计算机系统基础知识-经典题目
  • 原文地址:https://blog.csdn.net/kallenAB/article/details/125879617