在jdk 1.7以前接口中只能有常量和抽象方法
jdk1.8中:允许定义带有方法体的方法
默认方法:default修饰的方法
静态方法:static修饰的方法
默认方法:
实现类中可以对该方法进行重写,也可以不重写。
在实现类中,调用接口中的默认方法:
1.直接调用(不能出现自己调自己)
2.接口名.super.默认方法();
实现了多个接口,接口中有相同的默认方法定义,实现类中必须重写该方法,如果想要调用父接口中的方法,父接口名.super.默认方法名()。
实现类继承父类并实现接口,父类中和接口中都有相同的方法定义,创建子类对象,优先找父类。
这种接口定义的形式与抽象类越来越接近,继承会让类的耦合度增强,而实现接口会降低这种耦合度,因此趋势是接口比较使用广泛。
静态方法:
访问方式:接口名.静态方法名();
这个方法仅仅是使用接口名去访问,并没有被实现类给继承。
jdk1.9中:允许有私有方法(private)
仅限于当前接口中使用。
默认方法:既可以访问静态方法,可以访问非静态方法
静态方法:只能访问静态方法