接口与抽象类有什么不同
- 接口可以多实现;
抽象类只能单继承。 - 接口中只有常量;
抽象类可以有自己的成员变量。 - 抽象类的非抽象方法,可以有自己的实现;
接口在Java7及以前,方法不能有自己的实现,Java8之后通过default、static修饰的方法可以有自己的实现。 - 抽象类的成员与方法拥有完整的default、private、protect和public权限;
接口在Java7及以前,所有方法及成员默认是public static final 修饰,Java8添加了default、static方法,Java9添加了private default、private static方法。 - 抽象类的抽象方法,子类如果声明为抽象类可以不实现;
接口的未实现方法,实现该接口的类必须实现。