Java default method

Example 1

interface InterfaceA {
    default void say() {
        System.out.println("InterfaceA");
    }
}
public class DefaultMethod implements InterfaceA{
    public static void main(String[] args) {
        new DefaultMethod().say();
    }

}

output

InterfaceA

 Example 2 Implementation class overrides the default method

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();
    }

}

output

DefaultMethod

 Example 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);
    }

}

output

DefaultMethod
InterfaceA

 Example 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();
    }
}

 

 output error

Example 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");
        
    }
}

 

output

defaultMethod

 Example 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();
    }
}

 

output error

Example 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();
    }
}

 

output

InterfaceA
InterfaceB

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324875795&siteId=291194637