Java8新特性(七)——接口中的默认方法与静态方法

本文详细介绍了Java8中接口的默认方法和静态方法的使用。默认方法允许接口拥有具体实现,通过default关键字声明。当接口方法与类方法同名时,遵循类优先原则。静态方法则直接在接口中声明为static,无需实例化即可调用。文章通过示例代码展示了这些概念的实际应用。

七、接口中的默认方法与静态方法

1.接口的默认方法

Java 8中允许接口中包含具有具体实现的方法,该方法称为“默认方法”,默认方法使用 default 关键字修饰。

package com.zsr.interfacemethod;

public interface MyInterface1{

    default String fun1(){
        return "接口MyInterface1中的默认方法fun1~";
    }
}

接口默认方法的 ” 类优先 ” 原则

若一个接口中定义了一个默认方法,而另外一个父类或接口中又定义了一个同名的方法时

  • 选择父类中的方法。如果一个父类提供了具体的实现,那么接口中具有相同名称和参数的默认方法会被忽略。
public class Father {

    public String fun1(){
        return "父类Father中的方法fun1~";
    }
}
class Test1 extends Father implements MyInterface1{
    
    public static void main(String[] args){
        String s = new Test1().fun1();
        System.out.println(s);
    }
}

结果:
>父类Father中的方法fun1~

  • 接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提供了一个具有相同名称和参数列表的方法(不管方法是否是默认方法),那么必须覆盖该方法来解决冲突
public interface MyInterface2 {
    default String fun1(){
        return "父接口MyInterface2中的默认方法fun1~";
    }
}
class Test2 implements MyInterface1,MyInterface2{

    public static void main(String[] args){
        String s = new Test2().fun1();
        System.out.println(s);
    }

    @Override
    public String fun1() {
        return MyInterface2.super.fun1();
    }
}

结果:
在这里插入图片描述

2.接口中的静态方法

Java8 中,接口中允许添加静态方法。

public interface MyInterface3 {
     static String show(){
        return "静态方法show()";
    }
}
class Test3 implements MyInterface3{
    public static void main(String[] args){
        String s = MyInterface3.show();
        System.out.println(s);
    }
}

结果:
在这里插入图片描述

注:菜鸟一枚,才疏学浅,希望各位前辈能够批评指正,感谢感谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值