Java8-默认方法

普通默认方法

  • 默认方法简单说就是接口可以有实现方法,而且不需要实现类去实现其方法

编码方式

  • 只需要在方法名前加入default关键字即可实现默认方法
    public interface Man {
        default void say() {
            System.out.println("I'm a Man ");
        }
    }

多个默认方法解决方案

当一个类实现多个具有默认方法的接口,且这些接口具有相同的默认方法:

  1. 创建同名方法覆盖重写接口的默认方法
    public class People implements Man, Woman {
        public void say() {
            System.out.println("I'm a People ");
        }
    }
    public interface Man {
        default void say() {
            System.out.println("I'm a Man ");
        }
    }

    public interface Woman {
        default void say() {
            System.out.println("I'm a Woman");
        }
    }
  1. 使用super来调用指定接口的默认方法
    public class People implements Man, Woman {
        public void say() {
            Man.super.say();
            Woman.super.say();
            System.out.println("I'm a People ");
        }
    }

静态默认方法

  • 接口可以声明静态方法
 public interface Man {
        default void say() {
            System.out.println("I'm a Man ");
        }
        static void hello(){
            System.out.println("hello");
        }
    }
  • 在实现类中可以直接调用接口的静态方法
    public class People implements Man, Woman {
    ...
        public void hello(){
            Man.hello();
        }
    }

你可能感兴趣的:(Java8-默认方法)