在jdk1.8之前,接口中的方法默认都是abstract的,变量都是默认 public static final,也就是接口中只存在常量,但是在jdk1.8中,允许接口中包含具有具体实现的方法和静态方法
一、默认方法
Java 8 允许给接口添加一个非抽象的方法实现,只需要使用 default 关键字修饰,该方法可以在接口中自己实现,实现类中调用
public interface x1 {
public default void a(){
System.out.println("这是x1");
}
}
public class xx implements x1{
public static void main(String[] args) {
xx xx = new xx();
xx.a();
}
}
//输出“这是x1”
1、接口冲突
如果实现类实现了两个接口,而两个接口中都存在相同的default方法,则必须在实现类中重写该方法
public interface x2 {
public default void a(){
System.out.println("这是x2");
}
}
public interface x1 {
public default void a(){
System.out.println("这是x1");
}
}
public class xx implements x1,x2{
@Override
public void a() {
System.out.println("这是重写的a方法");
}
publi