Java1.8接口方法都是抽象_java1.8新特性(一)接口的默认方法

一 简介

我们通常所说的接口的作用是用于定义一套标准、约束、规范等,接口中的方法只声明方法的签名,不提供相应的方法体,方法体由对应的实现类去实现。

在JDK1.8中打破了这样的认识,接口中的方法可以有方法体,但需要关键字static或者default来修饰,使用static来修饰的称之为静态方法,静态方法通过接口名来调用,使用default来修饰的称之为默认方法,默认方法通过实例对象来调用。

静态方法和默认方法的作用:

静态方法和默认方法都有自己的方法体,用于提供一套默认的实现,这样子类对于该方法就不需要强制来实现,可以选择使用默认的实现,也可以重写自己的实现。当为接口扩展方法时,只需要提供该方法的默认实现即可,至于对应的实现类可以重写也可以使用默认的实现,这样所有的实现类不会报语法错误:Xxx不是抽象的, 并且未覆盖Yxx中的抽象方法。

二 示例

接口:

packagecom.swpu.newJDk;public interfaceDefaultInterface {public int k=10;voidcommonMethod();default voiddefaultMethod(){

System.out.println("接口的默认方法");

}static voidstaticMethod(){

System.out.println("接口的静态方法");

}

}

测试:

packagecom.swpu.newJDk;/*** @ClassName Test

* @Description TODO

* @Author 王旭龙

* @Date 2019/9/9 14:53*/

public classTest {public static voidmain(String[] args) {

//匿名实现类

DefaultInterface defaultInterface= newDefaultInterface() {

@Overridepublic voidcommonMethod() {

System.out.println("以前接口的普通方法,需要重写");

}

};

defaultInterface.commonMethod();

defaultInterface.defaultMethod();

DefaultInterface.staticMethod();

System.out.println(DefaultInterface.k);

}

}

结果:

4a091aa875e9f24accbb512d2a674c9b.png

结果说明:

接口里static修饰的staticMethod 的调用时 接口名.方法 不能直接用示例对象调用。用default修饰的方法用实例对象调用,接口的成员变量是 public static final 修饰 直接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值