示例1 輸出 示例2 實現類重寫default方法 輸出 示例3 輸出 示例4 輸出 報錯 示例5 輸出 示例6 輸出 報錯 示例7 輸出 ...
示例1
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } public class DefaultMethod implements InterfaceA{ public static void main(String[] args) { new DefaultMethod().say(); } }
輸出
InterfaceA
示例2 實現類重寫default方法
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } public class DefaultMethod implements InterfaceA{ public void say() { System.out.println("DefaultMethod"); } public static void main(String[] args) { new DefaultMethod().say(); } }
輸出
DefaultMethod
示例3
interface InterfaceA { default void say(double m) { System.out.println("InterfaceA"); } } public class DefaultMethod implements InterfaceA{ public void say(int m) { System.out.println("DefaultMethod"); } public static void main(String[] args) { DefaultMethod defaultMethod = new DefaultMethod(); defaultMethod.say(1); defaultMethod.say(1L); } }
輸出
DefaultMethod InterfaceA
示例4
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } interface InterfaceAA extends InterfaceA{ void say(); } public class DefaultMethod implements InterfaceAA{ public static void main(String[] args) { DefaultMethod defaultMethod = new DefaultMethod(); defaultMethod.say(); } }
輸出 報錯
示例5
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } interface InterfaceAA extends InterfaceA{ void say(); } public class DefaultMethod implements InterfaceAA{ public static void main(String[] args) { DefaultMethod defaultMethod = new DefaultMethod(); defaultMethod.say(); } @Override public void say() { System.out.println("defaultMethod"); } }
輸出
defaultMethod
示例6
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } interface InterfaceB { default void say() { System.out.println("InterfaceB"); } } public class DefaultMethod implements InterfaceA,InterfaceB{ public static void main(String[] args) { DefaultMethod defaultMethod = new DefaultMethod(); defaultMethod.say(); } }
輸出 報錯
示例7
interface InterfaceA { default void say() { System.out.println("InterfaceA"); } } interface InterfaceB { default void say() { System.out.println("InterfaceB"); } } public class DefaultMethod implements InterfaceA,InterfaceB{ public static void main(String[] args) { DefaultMethod defaultMethod = new DefaultMethod(); defaultMethod.say(); } @Override public void say() { InterfaceA.super.say(); InterfaceB.super.say(); } }
輸出
InterfaceA InterfaceB