1.接口中声明的成员默认为static final成员(不管是基础数据类型还是引用类型),且必须初始化;接口中没有普通变量(普通成员变量),接口中都是常量,默认修饰符:public static final
2.接口中声明的方法默认为public且不能有实现体,即{},方法体可有参数;
3.实现接口的类,必须实现接口中所有方法,且不能降低方法的运用域,即必须显示声明为public
4,抽象类不需要实现接口的方法。抽象类也可以实现接口,但是可以实现部分或者一个都不实现。
5,在jdk8之后添加了默认方法,在返回值加上default关键字,然后还有方法体;该接口被扩展时,可以直接继承或重新声明。还添加了静态方法。
实现接口类如果是抽象类,那么可以选择性的实现接口中的方法。
一个类只能有一个直接父类,但是继承是有传递性的。一个类可以实现多的接口。一个接口可以继承多个类。
JDK8之前,接口中的方法都是默认public abstract的,JDK8之后,接口中可以有static、default的修饰的方法,一旦被修饰,方法必须有方法体(抽象方法可是没有方法体的),接口中的方法都不能被private和protected修饰,同时外部接口、类只能被public修饰或者不写,但是内部接口、类可以被四个访问修饰符修饰。
实现接口,其实就是需要重写接口中的abstract方法,一旦实现的类没有重写完,那么这个类必须是个抽象类(抽象类中可以没有抽象方法,但是有抽象方法的类必须是抽象类)