JDK8--接口中的默认方法与静态方法学习笔记

在jdk1.8之前,接口中的方法默认都是abstract的,变量都是默认 public static final,也就是接口中只存在常量,但是在jdk1.8中,允许接口中包含具有具体实现的方法和静态方法

一、默认方法

Java 8 允许给接口添加一个非抽象的方法实现,只需要使用 default 关键字修饰,该方法可以在接口中自己实现,实现类中调用

public interface x1 {
    public default void a(){
        System.out.println("这是x1");
    }
  
}

public class xx implements x1{
    public static void main(String[] args) {
        xx xx = new xx();
        xx.a();
    }
}
//输出“这是x1”

1、接口冲突

如果实现类实现了两个接口,而两个接口中都存在相同的default方法,则必须在实现类中重写该方法

public interface x2  {
    public default void a(){
        System.out.println("这是x2");
    }
}


public interface x1 {
    public default void a(){
        System.out.println("这是x1");
    }
}

public class xx implements x1,x2{
    @Override
    public void a() {
        System.out.println("这是重写的a方法");
    }
    publi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值