1.首先抽象类也是类, 既可以有正常方法, 也可以有抽象方法, 然而接口相当于多个类的规范, 没有方法体, 里面所有的方法和属性都会被隐式定义为 public abstract, java中不允许被多继承, 但允许多实现
抽象类的特性 (abstract) :
抽象类不能实例化对象, 只能创建抽象类的子类, 然后由子类重写抽象类中的抽象方法(全都要重写, 不然还是抽象类)
抽象类因为要被重写, 所以不能是 private修饰, 同理, 里面的抽象方法也是, 同时也不能被 final和 static修饰
抽象类中可以有构造方法, 这可以供子类在创建对象时初始化父类成员变量
接口的特性 (interface) :接口是一种引用类型, 但是不能直接实例化
接口中的每一种方法都是 public abstract, 变量是 public static final
实现接口的类如果没有实现接口中的每一种抽象方法, 就要被设置成抽象类
接口虽然不是类, 但是在编译完成后的字节码文件的后缀格式也是 .class
接口中不能有构造方法
- 抽象类就像是一个产品的半成品, 里面既可以有完整的方法, 也可以有抽象的方法, 接口就像是一个制定标准和规范

- 继承抽象类, 我们可以进行抽象方法的重写, 功能的扩展, 要是不满意父类功能也可以选择重写

- 实现接口, 我们要按照他给的规范从头制定一个完整的产品
