抽象类与接口对比
复习了一下抽象类与接口的概念,整理了点二者的特性
项目 | 抽象类 | 接口 |
---|---|---|
是不是类 | 是,用class修饰 | 不是,用interface修饰,但也会生成字节码.class文件 |
子类 | 使用extends 来继承.子类可以是一般类或抽象类 | 称为实现类,用implements来实现.实现类可以是一般类或抽象类 |
有无构造 | 有,但不能创建对象,可给子类用 | 没有 |
成员 | 可以有一般类的所有,还可以有抽象方法 | JDK8之前只能有 全局静态常量、抽象方法. JDK8之后:可以有默认方法/静态方法/带方法体的方法 |
继承关系或实现关系 | 类的继承 单继承 子类 表示 是父类的一种 | 接口和接口 可以多继承 实现类和接口 可以多实现 实现类 表示 像(有一个) |
— | 关联 :A类 有一个 B类 | — |