一、抽象类和接口的区别
相同点
不可以实例化对象
不可以被 final 修饰
都可以作为顶层设计,提供抽象方法给下层
不同点
1.抽象类的关键字是 abstract,接口的关键字是 interface
2.抽象类方法可以有方法体,接口方法不可以有方法体
3.抽象类方法作用域不可以是 private,接口方法强制为 public abstract(不用自己写)
4.抽象类属性作用域随意定义,接口属性默认为静态常量(public final static)
5.抽象类单继承但是可以多实现,不同的接口之间可以多继承
6.抽象类可以实现接口,但是接口不能继承抽象类(因为抽象类中可能有非抽象方法)
7.抽象类:is A;接口:has A;
二、抽象类的意义
1,为子类提供一个公共的类型;
2,封装子类中重复内容(成员变量和方法);
3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。