接口和抽象有什么区别?
接口和抽象是 Java 面向对象设计的两个基础机制。
接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到API 定义和实现分离的目的。
- 接口不能实例化,
- 接口不能包含任何非常量成员,任何 field 隐含 public field final的意义
- 非静态方式实现,要么是抽象方法,要么是静态方法。
抽象类不能实例化,用 abstract 关键字修饰 class, 其主要目的是代码重用。
- 抽象类和普通 Java 类在形式上没有太大区别。 可以有一个或者多个抽象方法,- 抽象类大多用于抽取 Java 类共用方法实现或者共同成员变量。然后通过继承的方式到达代码复用的目的。
接口和抽象区别
- 接口 Java 类实现 interface 使用 implements 关键词
- 继承 抽象类是使用 extends 关键词
- 支持多重继承:接口支持;抽象类不支持;类不支持;
- 支持抽象函数:接口语义上支持;抽象类支持;类不支持;
- 允许函数实现:接口不允许;