一. 接口默认方法
1. 定义
接口不只是一个只能声明方法的地方,还可以在声明方法的时候,给方法一个默认的实现,而不需要实现类去实现其方法。默认方法用default关键字修饰,它默认就是public权限的。
2. 特点
(1)所有的实现类都会自动继承接口中定义的默认方法;
(2)接口中的默认方法可以被实现类重写;
(3)在被调用时,实现类重写后的方法优先于默认方法;
(4)和1.8之前一样,在接口中仍然不允许定义普通的实现方法,接口任然会保持除这些新特性外的所有原有特性.
3. 举例
1 package com.test.a; 2 3 public interface Base { 4 public default void f() {// only public,default,abstract 5 System.out.println("hello world1"); 6 } 7 8 default void f2() { 9 System.out.println("hello world2"); 10 } 11 12 public void f3();;// 必须不能有方法体 13 14 public static void f4() {// 必须要有方法体,即使方法体中没有具体的实现逻辑 15 System.out.println("hello world4"); 16 } 17 18 }