Java基础——接口组成更新

1.接口组成更新概述

接口组成:

  • 常量(public static final)
  • 抽象方法(public abstract)可省去,没有方法体
  • 默认方法(Java8 public default)
  • 静态方法(Java8 public static)
  • 私有方法(Java8)

2.默认方法

  • 主要用于实现接口的升级而不破坏现有的代码
  • 格式:public default 返回值类型方法名(参数列表){} //public可省去
  • 默认方法允许有方法体
  • 重写默认方法时,不可加default关键字

public interface MyInteface {
    public static final int a = 1;
    //抽象方法,public abstract 返回类型 函数名(参数表);无方法体 ,可省略如下
    void show1();
    void show2();
//默认方法,public default 返回类型 函数名(参数表){允许有方法体},可省public
    // 继承的类可重写该方法,但不能加default
    public default void show3(){
        System.out.println("show3");//当不是所有继承都需要时,不写方法体
    }
}

3.静态方法

  • 主要用于****,只能被接口调用
  • 格式:public static 返回值类型方法名(参数列表){} //可省public
  • 注意:静态方法只能通过接口名调用,不可通过实现类名或对象名调用
public interface Flyable {
    void fly1();
    default void fly2(){
        System.out.println("调用了默认方法中的fly");
    }
    static void fly3(){
        System.out.println("调用了静态方法中的fly");
    }
}
//调用
    Flyable f = new Plane();
        //调用fly1
        f.fly1();//该方法已经被重写
        
        f.fly2();
        //调用接口的静态方法
        Flyable.fly3();

3.私有方法

在这里插入图片描述

  • 格式1:private 返回值类型 方法名(参数列表){}
  • 格式2:private static 返回值类型 方法名(参数列表){}

public interface Eat {
    //默认方法既可以调用非静态私有方法也可以调用静态的所有方法
    default void eat1(){
        System.out.println("eat1");
       /* System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");*/
        aeat();
    }
    default void eat2(){
        System.out.println("eat2");
        /*System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");*/
        aeat();
    }
    //当存在重复时,我们可写一个私有方法调用
    private void aeat(){
        System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");
    }
    //静态方法只可以调用静态方法
    static void eat3(){
        System.out.println("eat3");
       /* System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");*/
        //不可调用aeat()
        beat();
    }
    static void eat4(){
        System.out.println("eat4");
        /*System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");*/
        beat();
    }
    private static void beat(){
        System.out.println("小狗吃骨头");
        System.out.println("小猫吃鱼");
        System.out.println("小兔子吃胡萝卜");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值