java 核心技术卷一笔记 6 .1.接口 lambda 表达式 内部类

时间:2022-12-25 14:51:57

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)接口冲突。如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,必须覆盖这个方法来解决冲突。