抽象类(Abstract Class)和接口(Interface)的异同

抽象类和接口的异同

抽象类:

  1. 抽象类可以定义构造方法
  2. 可以有抽象方法和普通方法(可以写出方法的具体实现)
  3. 接口中的成员变量全都是public
  4. 接口中可以定义成员变量
  5. 抽象类不一定有抽象方法,有抽象方法的一定是抽象类
  6. 抽象类中可以包含静态方法
  7. 抽象类只能单继承(类只能单继承)

接口:

  1. 不能定义构造方法
  2. 方法全部是抽象方法
  3. 抽象类中的成员可以是private default protected public
  4. 成员变量统一为public static final 格式的
  5. 接口中不能有静态方法和静态代码块
  6. 一个类可以实现多个接口

相同点

1.都不能实例化
2. 可以将抽象类和接口作为引用类型
3. 一个类必须实现抽象类中的所有抽象方法或者继承的接口的所有方法否则还将其成为抽象类

上一篇:Golang通脉之接口


下一篇:【Golang】Go 通过结构(struct) 实现接口(interface)