Java中的的default关键字 Java虚拟扩展方法(Java Virtual Extension Method,JVEM)

Java 8 使我们能够通过使用 default 关键字向接口添加非抽象方法实现

interface Test{

    double calculate(int a);

    default double sqrt(int a) {
        return Math.sqrt(a);
    }

}

Test 接口中除了抽象方法计算接口公式还定义了默认方法 sqrt。 实现该接口的类只需要实现抽象方法 calculate。
默认方法sqrt 可以直接使用。

public class Main {

  public static void main(String[] args) {
    // 通过匿名内部类方式访问接口
    Test test= new Test() {
        @Override
        public double calculate(int a) {
            return sqrt(a * 100);
        }
    };

    System.out.println(formula.calculate(100));     // 100.0
    System.out.println(formula.sqrt(16));           // 4.0
  }
}
在Java语言中,default关键字主要有两个用途:
1. 在接口中定义默认方法:

在Java 8之后,接口可以包含默认方法。这些方法在接口内部提供了一个默认的实现,这样在实现这个接口的类中就不需要再提供实现。默认方法通过使用default关键字进行声明。例如:

public interface MyInterface {
    default void myDefaultMethod() {
        System.out.println("This is a default method.");
    }
}

在这个例子中,任何实现MyInterface的类都会获得myDefaultMethod方法的默认实现。

2. 在switch语句中:

default关键字用在switch语句中时,表示当所有case都不匹配时执行的代码块。例如:

int number = 3;
switch (number) {
    case 1:
        System.out.println("One");
        break;
    case 2:
        System.out.println("Two");
        break;
    default:
        System.out.println("Other");
        break;
}

在这个例子中,如果number不等于1也不等于2,那么就会执行default代码块。

总的来说,default关键字为Java提供了更灵活的机制,使得在接口中定义一些默认行为或在switch语句中处理不匹配的情况变得更加方便。

你可能感兴趣的:(java点滴积累,java8,java,开发语言)