抽象类与接口

抽象类

  • 抽象类和抽象方法必须使用 abstract 关键字修饰

​ public abstract class 类名 {}

​ public abstract void 方法名{}

  • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  • 抽象类不能直接实例化

​ 抽象类如何实例化?参照多态的方式,通过子类对象实例化,也叫作抽象类多态

  • 抽象类的子类

​ 要么重写抽象类中的所有抽象方法

​ 要么自己也是抽象类

  • 抽象类的成员特点
    • 成员变量
      • 可以是变量
      • 也可以是常量
    • 有构造方法
    • 成员方法
      • 可以有抽象方法:限定子类必须完成某些动作
      • 也可以有非抽象方法:提高代码的复用性

接口

  • 接口用关键字 interface 修饰
  • 类实现接口用 implements 表示
  • 接口不能直接实例化

​ 接口如何实例化呢?参照多态的方式,通过实例化类对象来实例化,也叫作接口多态

多态的前提:有继承或者实现关系;有方法重写;有父(类/接口)引用指向(字/实现)类对象

  • 接口的实现类

​ 要么重写接口中的所有抽象方法

​ 要么是抽象类

  • 接口中的成员特点
    • 成员变量
      • 只能是常量
      • 默认用修饰符:public static final
    • 没有构造方法
    • 成员方法
      • 只能是抽象方法
      • 默认修饰符:public abstract

抽象类与接口的区别

  • 成员
    • 抽象类:常量,变量;构造方法;非抽象方法,抽象方法
    • 接口:常量;抽象方法
  • 关系区别
    • 类与类:继承--单继承
    • 类与接口:实现,可以单实现,也可以多实现
    • 接口与接口:继承--可以单继承,也可以多继承
  • 使用设计理念
    • 抽象类:对类抽象,包括属性、行为
    • 接口:对行为抽象,主要是行为
posted @ 2022-01-06 15:55  早晨9点  阅读(38)  评论(0)    收藏  举报