1. 抽象类和接口都不能实例化,但是可以定义抽象类和接口类型的引用。
2. 一个类如果继承抽象类或者实现了接口需要实现其中的全部抽象方法,否则该类被声明为抽象类
3. 抽象类中可以定义构造器和普通方法,接口则不可以
4. 抽象类可以定义普通成员变量,接口中的成员变量默认是public static final修饰的常量
5. 抽象类中的成员可以是private、friendly、protected和public,接口中的成员全部是public
6. 有抽象方法的类是抽象类,抽象类未必有抽象方法
7. 抽象类除了不能实例化,其他和普通没多大区别
8. 注意,在java8中,接口可以拥有非抽象的普通方法。