接口中的抽象方法,默认方法,静态方法,私有方法

目录

1、接口定义

2、具体说明

1)抽象方法,默认方法,静态方法使用

2)私有方法的使用 


1、接口定义

接口是功能的集合,是一种数据类型。接口里定义方法默认是public abstract(抽象方法),没有具体的实现,实现由实现类实现,且必须实现。

JDK7及以前:只能定义全局常量和抽象方法

  • 全局常量:public static final的,书写时可以省略
  • 抽象方法:public abstract的,可以省略

JDK8:增加了静态方法、默认方法。

JDK 9:增加了私有方法。

2、具体说明

1)抽象方法,默认方法,静态方法使用

  1. 必须重写接口中所有抽象方法。
  2. 继承了接口的默认方法,即可以直接调用,也可以重写。
  3. 接口中定义的静态方法,只能通过接口来调用。
public interface Itest1 {
    //抽象方法
    void method1();
    //默认方法
    default void method2() {
        System.out.println("default method1");
    }
    default void method3() {
        System.out.println("default method2");
    }
    //静态方法
    static void method4() {
        System.out.println("static method");
    }
}
public class ClassA implements Itest1{

    @Override
    public void method1() {
        System.out.println("method1 rewrite");
    }

    @Override
    public void method2(){
        System.out.println("method2 rewrite");
    }

    @Test
    public void test(){
        ClassA classA = new ClassA();
        classA.method1();
        classA.method2();
        classA.method3();
        Itest1.method4();
    }
}

2)私有方法的使用 

  • 私有方法:只有默认方法可以调用。
  • 私有静态方法:默认方法和静态方法可以调用。
public interface Itest1 {
    private void method1(){
        System.out.println("私有方法");
    }

    private static void method2() {
        System.out.println("私有静态方法");
    }

    default void method3() {
        method1();
        method2();
        System.out.println("default method3");
    }

    static void method4() {
        method2();
        System.out.println("static method");
    }
}
public class ClassA implements Itest1{

    @Test
    public void test(){
        ClassA classA = new ClassA();
        classA.method3();
        Itest1.method4();
    }
}

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鲁蛋儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值