JDK7 JDK8 JDK9接口中的默认方法、静态方法、私有方法

JDK8开始之后接口新增的方法

JDK7以前:接口中只能定义抽象方法

JDK8的新特性:接口中可以定义有方法体的方法(默认、静态)

JDK9的新特性:接口中可以定义私有方法

 接口中的默认方法

InterA
package com.itheima.a06;

public interface InterA {
     // 抽象方法 不能拥有方法体
    public abstract void show();
    // public 可以省略 default不可以省略
    public default void print() {
        System.out.println("A接口中的默认方法---print");
    }
}
InterB
package com.itheima.a06;

public interface InterB {
     // 抽象方法 不能拥有方法体
    public abstract void show();
    // public 可以省略 default不可以省略
    public default void print() {
        System.out.println("B接口中的默认方法---print");
    }
}
intermpl
package com.itheima.a06;

public class intermpl implements InterA,InterB {
    @Override
    public void show() {
        System.out.println("实现类 重写的抽象方法");
    }

    // 默认方法不是抽象方法 不强制重写 如果重写 去掉default关键字
    // 实现多个接口 多个接口存在相同名字的默认方法,子类就必须对该方法重写
    @Override
    public void print() {
        System.out.println("重写接口中的默认方法");
    }
}
Test
package com.itheima.a06;

public class Test {
    public static void main(String[] args) {
        intermpl ii=new intermpl();
        ii.show();
        ii.print();
    }
}

JDK8以后新增的静态方法

Inter
package com.itheima.a07;

public interface Inter {
    public abstract void method();
    // 静态方法不能被重写
    public static void show(){
        System.out.println("Inter方法中的静态方法");
    };
}
InterImpl
package com.itheima.a07;

public class InterImpl implements Inter {
    @Override
    public void method() {
        System.out.println("InterImpl中重写的抽象方法");
    }
    // 不叫重写
    public static void show(){
        System.out.println("InterImpl方法中的静态方法");
    };
}
Test
package com.itheima.a07;

public class Test {
    public static void main(String[] args) {
        // 调用接口中的静态方法
        Inter.show();
        // 调用实现类中的静态方法
        InterImpl.show();
    }
}

JDK9以后的私有方法

InterA
package com.itheima.a08;

public interface InterA {

    public default void show1(){
        System.out.println("show1方法执行");
        show3();
    };


    public default void show2(){
        System.out.println("show2方法执行");
        show3();
    };
    //普通私有方法,给默认方法服务
    private void show3(){
        System.out.println("记录细节的代码");
    };
    public static void show11(){
        System.out.println("show1方法执行");
        show4();
    };


    public static void show22(){
        System.out.println("show2方法执行");
        show4();
    };
    //静态私有方法,给静态方法服务
    private static void show4(){
        System.out.println("记录细节的代码");
    };
}

总结

yH5BAAAAAAALAAAAAAOAA4AAAIMhI+py+0Po5y02qsKADs=wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值