1.抽象类可以存在普通的成员函数,而接口只能存在public abstract方法
2.抽象类种的成员变量可以是各种类型,而接口只可以常量
3.抽象类只能继承一个,而接口可以实现多个
接口的设计目的是对类的行为进行约束,它只约束了行为的有无,但不对何如实现进行限制
。接口时对行为进行抽象,接口的核心是定义行为。使用场景如果关心一个操作的时候就用接口。
抽象类的设计目的是代码复用,当不同的类具有某些相同的行为,就把这些类派生一个抽象对象抽象类是对类的本质的抽象,使用场景,如果你关心事务的本质就用抽象。 抽象类不能被实例化,因为从功能角度来看,抽象类是一个不完整的类,从内存分配角度来看,该对象只分配了在栈中的引用,没有分配堆中的内存。



