6.1.2 接口不是类,不能实例化一个接口;但是可以声明接口的变量;Comparable x; 接口变量必须引用实现了接口的类对象;x = new Employee();
检查一个对象是否属于某个特定类(instanceof);
检查一个对象是否属于某个特定的接口(instance);if (anObject instanceof Comparable){...}
6.1.3 接口与抽象类
抽象类只能扩展一个类(单一继承);
6.1.4 静态方法
由一个字符串序列构造一个文件或目录的途径,如Paths.get("jdk1.8.0","jre","bin")
public interface Path
{
public static Path get (String first...more)
{
return FileSystems.getDefault().getPath(first, more);
}
...
}
6.1.5 默认方法
可以为接口方法提供一个默认实现。
public interface Comparable<T>{
default int comparableTo(T other ){return o;}
}
6.1.6 解决默认方法冲突
如果先在一个接口中将一个方法定义为默认方法,然后又在超类或者另一个接口中定义了同样的方法,?
1)超类优先。如果超类提供了一个具体的方法,同名而且有相同的参数类型的默认方法会被忽略。
2)接口冲突。如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,必须覆盖这个方法来解决冲突。