Java8的default和static关键字的使用讲解

 更新时间:2019年01月30日 11:57:57   作者:裴星宙  
今天小编就为大家分享一篇关于Java8的default和static关键字的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

1. default和static关键字

a.default 用在接口中, 为该接口的实现类的方法.  --> 不能通过接口直接调用.  

static 也是用在接口中, 同Class中的static方法一样, 是类级别的方法, 而不是对象的方法.  --> 可以通过接口直接调用. 

b.一个接口可以有多个default方法, 也可以有多个static方法.

2. default 在使用中的注意事项

如下面的例子

有两个接口, InterA和InterB, 都有一个方法, 为defaultFunction(),ClassA仅仅为InterA的实现类. 那么没有报错. 当调用ClassA的defaultFunction()时,会自动调取InterA的方法.

但是ClassAB同时为InterA和InterB的实现类.当调用ClassAB的defaultFunction()时,不知道该调取哪个接口的了,所以,ClassAB需要自己重写这个方法. 

3. Static则和default不同, 

打印结果

4. 源码

public class DefaultDemoApp {
  public static void main(String[] args) {
    new ClassA().defaultFunction();
    new ClassAB().defaultFunction();
  }
}
interface InterA {
  default void defaultFunction() {
    System.out.println("This is A defaultFunction");
  }
  static void staticFunction() {
    System.out.println("This is A status function");
  }
}
interface InterB {
  default void defaultFunction() {
    System.out.println("This is B defaultFunction");
  }
  static void staticFunction() {
    System.out.println("This is B status function");
  }
}
class ClassA implements InterA {
}
class ClassAB implements InterA, InterB {
  @Override
  public void defaultFunction() {
    InterB.staticFunction();
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java并发编程this逃逸问题总结

    Java并发编程this逃逸问题总结

    本篇文章给大家详细分析了Java并发编程this逃逸的问题分享,对此有需要的朋友参考下。
    2018-02-02
  • Java中的异常处理机制介绍(非常全面!)

    Java中的异常处理机制介绍(非常全面!)

    异常可能是在程序执行过程中产生的,也可能是程序中throw主动抛出的,下面这篇文章主要给大家介绍了关于Java中异常处理机制的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Java 动态代理深入理解

    Java 动态代理深入理解

    这篇文章主要介绍了Java 动态代理深入理解的相关资料,需要的朋友可以参考下
    2017-03-03
  • Activiti开发环境的配置

    Activiti开发环境的配置

    本篇文章主要内容介绍了Activiti开发环境的配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • springboot集成redisson的三种方式

    springboot集成redisson的三种方式

    本文主要介绍了springboot集成redisson的三种方式,包含自定义配置+手动注入,使用Yaml方式批量读取配置和spring boot自动配置类这三种,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • java多线程编程之从线程返回数据的两种方法

    java多线程编程之从线程返回数据的两种方法

    从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪
    2014-01-01
  • java中单例模式讲解

    java中单例模式讲解

    这篇文章主要介绍了java中单例模式,本文通过简单的案例,讲解了该模式在java中的使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Can''t use Subversion command line client:svn 报错处理

    Can''t use Subversion command line client:svn 报错处理

    这篇文章主要介绍了Can't use Subversion command line client:svn 报错处理的相关资料,需要的朋友可以参考下
    2016-09-09
  • Java 中 Class Path 和 Package的使用详解

    Java 中 Class Path 和 Package的使用详解

    这篇文章主要介绍了Java 中 Class Path和Package的使用详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Java线程之线程同步synchronized和volatile详解

    Java线程之线程同步synchronized和volatile详解

    这篇文章主要介绍了Java线程之线程同步synchronized和volatile详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论