接口是一种特殊的抽象类
接口和抽象类的不同点:
1.抽象类中可以有实例属性;而接口中没有实例属性,Java虚拟机会自动给接口的加上 public static fianl 修饰符,都是公开的静态常量
2.抽象类中可以有实例方法;而接口中没有实例方法,Java虚拟机会自动给接口的方法加上public abstract 修饰符,都是公开的抽象方法
3.抽象类中可以有构造方法,而接口中没有
4.在创建子类对象的时候,内存中可以有抽象类的对象(因为有构造方法,有实例属性,实例方法可以提供使用,所以有对象)而内存中没有接口的对象(无构造方法时,无实例属性,方法)
5.抽象类可以继承具体类,接口不能继承类,一个接口只能继承一个接口
6.类和类直接的继承都是单继承,而接口之间的继承可以是多继承。
7.一个类只能继承一个直接的基类;但是一个类可以同时实现多个接口
接口和类的相同点:
1.接口和类都是一种类型
2.接口和抽象类都不能被实例化。