abstract 不能和final private static
共存:
因为子类需要去覆盖重写实现子类的抽象方法,有这几个前缀的无法实现覆盖
class 类名 impeement 接口
实质是继承
接口中只有抽象方法 jdk7及以前
接口不能直接实例化
接口中的成员变量 默认public static final
接口中的成员方法 只能是抽象方法 public abstract
所谓的接口的多重继承就是 接口可以同时继承多个接口,高级覆盖
一个类也可以实现多个接口
class xx extendx xxx,xxx{}
继承是获得,接口是添加
从jdk8开始,在接口中,引入了两种特殊的方法,这两种方法可以有方法体
- 默认方法
- 静态方法
默认方法的应用
假如想要在接口中想要增加新的功能,使用普通的增加抽象方法的办法会导致所有使用这个接口的类全部出错,因为需要再将这个类增加这个抽象方法的实现,
而默认方法不会导致这种问题,增加之后直接调用即可
静态方法的应用
静态方法只能在定义这个静态方法的内部调用,或者是使用这个接口来调用,接口.静态方法(),不是去给实现这个接口的类来用
主要用作工具方法有一些方法功能非常通用,比如Array.toString(),我们将这些通用功能定义成一个方法,让别人调用。
假如不是静态方法,还需要先创建对象再去调用