初级:
*抽象类可以存在普通的成员方法,而接口只能存在 public abstract 方法(java8- )
*抽象类只能继承一个,接口可以实现多个
*抽象类中的成员变量可以是各种数据类型,而接口的成员变量 只能是 public static final(常量)
中级:
*接口的设计目的, 它是为了约束行为的有无,但不对如何实现进行限制。
*接口是对行为的抽象,接口的核心是定义行为,即实现类可以做什么,而不管如何去做。
*抽象类的设计目的:是代码复用,把类具有的某些相同的行为,抽象为一个类。
*抽象类是对类本质的抽象,抽象类包含并实现子类的通用特性,如果存在差异化的特性进行抽象,交个子类去实现。
使用场景:当你关注一个事物的本质的时候,用抽象类;
当你关注一个操作的时候,用接口。
抽象类的功能要远超过接口, 在这个类中,你必须编写出子类所有的共性。