【Java修饰符之一】Java中Default关键字的两种使用方法

【Java修饰符之一】Java中Default关键字的两种使用方法Java 关键字 Default 的两种使用方法其实之前一直都没有关注过还有 default 这关键字的存在 最近重新回温 Java 语言程序设计 这本书时 想总结总结常用的一些修饰符 偶然发现 嗯 是这样的 两种使用方法 据我观察 总的来说 default 的用法不多 只有两种 在 switch 语句的时候使用 default 在定义接口的时候使用 default 来修饰具体的方法

Java关键字Default的两种使用方法


如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里

其实之前一直都没有关注过还有default这关键字的存在,最近重新回温《Java语言程序设计》这本书时,想总结总结常用的一些修饰符。偶然发现…嗯…是这样的.

两种使用方法:

据我观察,总的来说,default的用法不多,只有两种:

  • switch语句的时候使用default
  • 在定义接口的时候使用default来修饰具体的方法

使用方法


第一种使用方法

代码:

 int day = 8; String dayString; switch (day) { 
       case 1: dayString = "Monday"; break; case 2: dayString = "Tuesday"; break; case 3: dayString = "Wednesday"; break; case 4: dayString = "Thursday"; break; case 5: dayString = "Friday"; break; case 6: dayString = "Saturday"; break; //如果case没有匹配的值,那么肯定是星期日 default: dayString = "Sunday"; break; } System.out.println(dayString); 

总结:

  • 使用比较简单,就是当case里的值与switch里的key没有匹配的时候,执行default里的方法。在这里的例子中就是key为8,所以key与所有的case的值都不匹配,所以输出星期天Sunday.

第二种使用方法

接口的定义IntefercaeDemo,定义一个接口,里面有两个具体的方法,和一个抽象方法

IntefercaeDemo .java

public interface IntefercaeDemo { 
        //具体方法 default void showDefault(){ 
        System.out.println("this is showDefault method"); } static void showStatic(){ 
        System.out.println("this is showStatic method"); } //没有实现的抽象方法 void sayHi(); } 
  • LearnDefault 实现IntefercaeDemo 接口。

LearnDefault .java

public class LearnDefault implements IntefercaeDemo{ 
        //实现抽象方法 @Override public void sayHi() { 
        System.out.println("this is sayHi mehtod"); } public static void main(String[] args) { 
        //接口中被static所修饰的具体方法 IntefercaeDemo.showStatic(); //将实现了IntefercaeDemo的类实例化 LearnDefault learnDefault = new LearnDefault(); //被Default所修饰的具体方法可以通过引用变量来调用 learnDefault.showDefault(); } } 

说明:

  • JDK1.8中为了加强接口的能力,使得接口可以存在具体的方法,前提是方法需要被default或static关键字所修饰。

总结:

  • default修饰的目的是让接口可以拥有具体的方法,让接口内部包含了一些默认的方法实现。
  • 被default修饰的方法是接口的默认方法。既只要实现该接口的类,都具有这么一个默认方法,默认方法也可以被重写。
  • 我们可以想象这么一个场景,既实现某个接口的类都具有某个同样的功能,如果像Java8以前的版本,那么每个实现类都需要写一段重复的代码去实现那个功能,显得没有必要。这就是存在的意义。

注意:

另外这里既然提到了接口的修饰符default,那么就要注意一点,如果一个类实现了两个接口(可以看做是“多继承”),这两个接口又同时都包含了一个名字相同的default方法,那么会发生什么情况? 在这样的情况下,编译器是会报错,得到一个编译器错误,因为编译器不知道应该在两个同名的default方法中选择哪一个,因此产生了二义性。


补充:容易混淆的地方

这里的关键字default不要跟平时我们在类中定义方法时,没有加任何访问修饰符时的(default)相混淆,它们的意义是不一样的。

public class Demo{ 
         //没有访问修饰符修饰,所以默认为(default) String name; void show(){ 
        } } 

相关总结

我的其他修饰符总结直链:
【Java修饰符之一】Java中Default关键字的两种使用方法
【Java修饰符之二】探讨Java中final的三种使用场景和总结
【Java修饰符之三】Java中static关键字的五种使用方法
以上是简单的对default关键字进行总结,如有错误或还有其他用法的可以留言说一声,我会去关注的。











参考资料


  • [JavaBeat] – Default Keyword in Java
  • [HowToDoInJava] – Default Keyword in Java
  • [ImportNew] – Java 8新特性default方法(defender方法)介绍
  • 在此感谢查阅过的资料的作者,非常感谢!!!个人GitHub链接,欢迎赏脸




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216273.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午12:12
下一篇 2026年3月18日 下午12:12


相关推荐

  • Linux虚拟机重启_linux虚拟机怎么关机

    Linux虚拟机重启_linux虚拟机怎么关机一、Linux的五个重启命令1、shutdown2、poweroff3、init4、reboot5、halt二、五个重启命令的具体说明shutdownreboot在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。1.shutdownsh…

    2022年10月10日
    5
  • 动静分离 模板引擎

    动静分离 模板引擎动静分离 说白了 两步走战略 将主要的访问压力放到 cdn 上 主 web 服务器相当于延迟加载 即页面需要数据时 通过 ajax 去读取 优势 分担负载 减轻主 web 服务器的压力 适用于大负载 html 放置 cdn 同时还可以通过配置缓存要客户浏览器中 类似于 css js 那样 极大减轻压力 劣势 网络环境不佳时 ajax 回应很慢 导致页面出现空白 出错处理会不好看 编程方面 url

    2026年3月18日
    1
  • win10多合一原版系统_制作WIN10多合一原版系统「建议收藏」

    win10多合一原版系统_制作WIN10多合一原版系统「建议收藏」本帖最后由zhaofeng0420于2017-6-2112:27编辑开场白…已省略1000字废话先来看看效果QQ截图20170613153956.png(25.77KB,下载次数:0)2017-6-1422:10上传提前准备:WIN10原版ISO镜像cn_windows_10_multiple_editions_version_1703_updated_march_201…

    2022年6月29日
    44
  • java自适应网站成品源代码出售 h5网页推广展示型官网CMS系统源码

    java自适应网站成品源代码出售 h5网页推广展示型官网CMS系统源码QQ:464652874项目具体详情点击这企业门户网站系统源代码java响应式企业官网成品源码公司行业通用源代码web网站出售可二次开发源码项目介绍:企业门户网站系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的企业了解和熟知企业门户网站系统的便捷高效,不仅为用户提供了服务,而且也推广了自己,让更多的用户了解自己。对于企业而言,若拥有自己的企业门户网站系统,通过企业门户网站系统让企业的宣传、营销提上一个新台阶,同时提升了企业形象。技术介绍:前端页面自适应,支持PC和H5手机端、平

    2022年7月7日
    27
  • c++入门教程–-13数组

    c++入门教程–-13数组

    2021年3月12日
    140
  • 通过阿里云服务器部署flask项目详细步骤,从服务器选择开始

    通过阿里云服务器部署flask项目详细步骤,从服务器选择开始通过阿里云服务器部署flask项目详细步骤,从服务器选择开始1.购买服务器,我们目前选择镜像Ubuntu16.0464位的系统,因为这个系统目前运行比较稳定2.设施远程链接密码3.添加安全组4.利用ssh链接服务器5.先更新apt相关源6.mysql安装7.redis安装8.安装虚拟环境9.配置.bashrc修改.bashrc文件输入命令,打开.bashrc文件添加以下三行代码使.bashr…

    2022年6月18日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号