0
点赞
收藏
分享

微信扫一扫

Java中default方法有什么用

Java中default方法的用途

简介

在Java 8中,引入了一种新的方法类型:default方法。default方法是指在接口中定义的具有默认实现的方法。它解决了接口的一个局限性,即当向已有的接口添加新方法时,实现该接口的所有类都需要实现该方法。default方法的出现使得接口在添加新方法时变得更加灵活。

default方法的流程

下面是使用default方法的流程,可以用一个表格来展示。

步骤 动作
1 定义一个接口
2 在接口中声明一个default方法
3 实现该接口的类可以选择性地重写default方法
4 使用实现类对象调用default方法

具体步骤和代码示例

步骤1:定义一个接口

首先,我们需要定义一个接口,例如Person接口,用于描述人的行为。

public interface Person {
    void sayHello(); // 声明一个抽象方法
}

步骤2:在接口中声明一个default方法

接下来,在接口中声明一个default方法,例如default void sayGoodbye(),该方法是接口的默认实现。

public interface Person {
    void sayHello(); // 声明一个抽象方法

    default void sayGoodbye() {
        System.out.println("Goodbye!");
    }
}

步骤3:实现该接口的类可以选择性地重写default方法

现在,让我们创建一个实现类Student,它实现了Person接口。如果不重写sayGoodbye()方法,将使用默认实现。

public class Student implements Person {
    @Override
    public void sayHello() {
        System.out.println("Hello!");
    }
}

如果需要自定义sayGoodbye()方法的实现,可以在实现类中重写它。

public class Student implements Person {
    @Override
    public void sayHello() {
        System.out.println("Hello!");
    }

    @Override
    public void sayGoodbye() {
        System.out.println("See you later!");
    }
}

步骤4:使用实现类对象调用default方法

最后,我们可以创建Student类的对象,并调用sayHello()sayGoodbye()方法。

public class Main {
    public static void main(String[] args) {
        Student student = new Student();
        student.sayHello(); // 输出:Hello!
        student.sayGoodbye(); // 输出:Goodbye! 或 See you later!
    }
}

注意,如果sayGoodbye()方法在实现类中被重写,将使用实现类的自定义实现;否则,将使用接口中的默认实现。

总结

通过使用default方法,我们可以在接口中添加新的方法而不破坏已有的实现类。实现类可以选择性地重写default方法,以适应自己的需求。default方法的引入使得接口的演化变得更加灵活和方便。

举报

相关推荐

0 条评论