# Java8特性之接口 **Repository Path**: fpfgitmy_admin/java8-interface-features ## Basic Information - **Project Name**: Java8特性之接口 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-04-28 - **Last Updated**: 2021-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### JDK1.8的特性 ##### 接口的特性 + 接口中可以定义静态方法,默认方法,并有方法体 1. 接口中定义的静态方法,只能通过接口去调用 2. 接口中定义的默认方法,通过实现类对象来调用 3. 如果子类或实现类继承的父类和实现的接口中声明了同名同参数的方法,在子类没有重写此方法的情况下,优先调用父类的同名同参数的方法 4. 如果实现类实现了多个接口,而多个接口中定义了同名同参数的默认方法,实现类必须重写此方法 5. 在子类或实现类的方法中调用父类、接口中的重写方法使用`接口.super.method();`的方式调用,调用父类的方法使用`super.method();`方式 ``` public interface CompareA { static void method1() { System.out.println("这是个静态方法1"); } static void method2() { System.out.println("这是个静态方法2"); } default void method3() { System.out.println("这是个默认方法3"); } default void method4() { System.out.println("这是个默认方法4"); } } class SubClass implements CompareA { public void method2() { System.out.println("这是个默认方法的重写方法"); } public static void main(String[] args) { SubClass s = new SubClass(); CompareA.method1(); //接口静态方法的调用 s.method2(); // 接口默认方法的调用 } } ```