1,语法区别:
- 接口中通常只能定义常量和抽象方法;但是在新版JDK版本(JDK8后),在接口中还能定义默认方法,静态方法,私有方法;
- 抽象类除了可以定义抽象方法外,其他的和普通类的结构无区别;
- 接口可以多继承,但是抽象类只能被类单继承;(接口多继承,类单继承);
2,使用区别:
接口时被实现的。用implements关键字;抽象类是一般是被子类继承的;
一个类只能继承一个抽象类,但一个类可以实现多个接口;
3,思想区别:
将子类必须具有的行为,属性放到抽象类中,而部分子类具有的行为则放到接口中;
这两者的存在使得代码变得更灵活,更规范;