java接口default和static

本文介绍了Java接口的新特性,包括在接口中定义非抽象方法的方法,使用default和static关键字的规则及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java接口特性

概述

  • java中的接口,不经可以定义抽象方法,也可以定义非抽象方法
  • 抽象方法和以前一样,默认加上public abstract,不能有方法体‘
  • 非抽象方法,必须有方法体,声明上必须加上default或者static

default

  • 使用default关键字的原因:

    • jdk7中所有的方法都是抽象方法,某个类一旦实现了接口,就必须重写接口中的所有的抽象方法
    • java8在接口中添加了很多的功能,但又担心以前的老版本不能使用了,给新的功能增加了默认的实现,并且不强制重写这个方法就加上default,,这类方法就加上default来修饰
  • 使用规则:

    • 可以不重写就能够调用,也可以重写
    • 特殊情况1:实现类实现了两个接口,但是又两个相同的默认方法,会强制重写这个方法。
      - 特殊情况2:在情况一中,如果

static

  • 含义:

    • 在接口中可以定义静态方法
  • 使用:

    • 直接接口名称.静态方法名();
  • 注意事项:

    • static和abstract不能共存
    • abstract方法,在抽象类或者接口中,需要定义实现类对象才能调用的方法
    • static关键字,可以在不创建对象的前提下调用
    • 只能通过接口名称调用static方法,不能使用实现类调用,会有安全隐患。
Java接口中,defaultstatic是两种不同类型的方法。 首先,default方法是在Java 8中引入的新特性。它允许在接口中定义具体的方法实现。在接口中定义default方法可以为接口添加新的方法,而不会破坏已有的实现类。实现类可以选择性地覆盖接口default方法,也可以直接使用默认的实现。这为接口的演化提供了更大的灵活性,而不会导致实现类的重写。 举个例子,假设我们有一个名为Shape的接口,其中定义了一个默认方法area(),用于计算形状的面积。现在,任何实现Shape接口的类可以选择是否重写area方法,如果没有重写,则默认使用接口提供的默认实现。 其次,static方法也可以在接口中定义。与默认方法不同,静态方法是具有固定的实现,在接口中定义无需实例化即可直接调用。静态方法通常用于提供与接口相关的实用方法,这些方法可以在不创建接口实例的情况下使用。 静态方法可以通过接口名调用,而无需创建接口的实例。这使得静态方法能够提供一些通用的工具方法,例如在接口中定义一个静态方法来检查两个对象是否相等,而不需要实例化接口。 综上所述,default方法static方法都是Java接口中的扩展特性,使得接口更加灵活易用。default方法提供了接口内部的默认实现,可以为已有的实现类添加方法而不影响其实现。而static方法则提供了一种在接口中定义与接口相关的实用方法的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值