接口用于描述类硬功做什么,而不指定具体应该如何做
接口中绝不会有实例字段,在Java8之前接口中不能实现方法
接口近似于没有实例字段的抽象类
/**
* 接口内可以声明字段属性(总是 public static final)
*/
public interface Speed{
double testfunc();
double SPEED_LIMIT = 2.0;
}
任何实现了Speed接口的类都自动继承了如上常量,可在方法中直接调用,而无需SpeeSPEED_LIMIT。
/**
* 接口内部定义静态和私有方法
*/
public interface PathDemo{
int size();
/**
* 静态私有方法
*/
public static Path of(URI uri){... ...}
/**
* 默认方法,此后每个实现该接口的类都将继承
*/
default int getNum(){ return 0; }
default int isEmpty(){ return size()==0; } // 默认方法可以调用其他方法
}
接口方法冲突
超类优先如果超类提供了一个具体方法,同名而且有相同参数类型的默认方法会被忽略接口冲突一个接口提供默认方法,另一个接口提供同名且参数类型相同的方法,则实现类中必须覆盖这个方法解决冲突接口不冲突两个接口都未提供共享方法的默认实现,则不存在冲突。实现类可选择实现这个方法或不实现这个方法,若不实现则表示这个类本身就是抽象的。
问题:如果在一个接口中定义了一个方法,而后又在超类或另一个接口中定义同名方法,如何解决冲突?
文章为作者独立观点,不代表股票交易接口观点