Java8函数式编程入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

接口默认方法

Java8之前版本接口只能包含抽象方法,Java8新增了接口的默认方法,接口也可以包含若干个实例方法。在Java8中,使用default关键字,可以在接口内定义实例方法,这个方法并非抽象方法,而是拥有特定逻辑的具体实例方法。

举个例子,人类都会吃,定义接口Hunman,包含一个默认方法eat()。

public interface Hunman {

    void say();

    default eat() {
        System.out.println("Hunman eat default method");
    }
}

定义一个Man类实现接口Human。

class Man implements Hunman {

    @Override
    public void say() {
        System.out.println("Hello...");
    }
}

测试:

    public void test() {
        Man man = new Man();
        man.say();
        man.eat();
    }

输出结果:

query

具体的类里面不是必须重写默认方法,这一改进使得Java8拥有了类似多继承的能力。

鸟都会飞,定义一个接口Bird,包含默认方法fly()。