java—接口

本文详细介绍了Java接口的概念、定义格式、使用步骤以及接口在不同Java版本中的特性,包括常量、抽象方法、默认方法和静态方法。同时,通过实例展示了如何实现接口,以及在实现多接口时的注意事项,如覆盖重写默认方法和处理冲突。此外,还演示了如何通过类实例调用接口中的方法。
摘要由CSDN通过智能技术生成
/*
接口就是多个类的公共规范。
    接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。

如何定义一个接口的格式:
public interface 接口名称 {
    // 接口内容
}

备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class

如果是Java 7,那么接口中可以包含的内容有:
    1. 常量
    2. 抽象方法

如果是Java 8,还可以额外包含有:
    3. 默认方法
    4. 静态方法

如果是Java 9,还可以额外包含有:
    5. 私有方法

接口使用步骤:
    1. 接口不能直接使用,必须有一个“实现类”来“实现”该接口。

格式:
public class 实现类名称 implements 接口名称 {
    // ...
}
    2. 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。
    实现:去掉abstract关键字,加上方法体大括号。
    3. 创建实现类的对象,进行使用。

注意事项:
    如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。

public default 返回值类型 方法名称(参数列表) {
    方法体
}

备注:接口当中的默认方法,可以解决接口升级的问题。
 */
package day9;
public interface MyInterface {
    public static final int NUM = 1;
    public abstract void method1();
    public default void method2(){
        System.out.println("这是接口中的默认方法");
    }
    public static void method3(){
        System.out.println("这是接口中的静态方法");
    }
}




/*
使用接口的时候,需要注意:
    1. 接口是没有静态代码块或者构造方法的。
    2. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
    格式:
    public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
        // 覆盖重写所有抽象方法
    }
    3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
    4. 如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。
    5. 如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
    6. 一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。
 */
package day9;
public interface MyInterface2 {
    public abstract void method4();
}





另起一个类:
package day9;
public class MyInterfaceImp implements MyInterface,MyInterface2 {
    @Override
    public void method1() {
        System.out.println("覆盖重写接口抽象方法");
    }

    @Override
    public void method2(){
        System.out.println("对接口的默认方法覆盖重写");
    }

    @Override
    public void method4() {
        System.out.println("对多接口,覆盖重写所有的抽象方法");
    }
}




再另起一个类:
package day9;
public class TesForMyInterfaceImp {
    public static void main(String[] args) {
        System.out.println(MyInterface.NUM);//访问接口中的常量
        MyInterfaceImp A = new MyInterfaceImp();
        A.method2();//调用接口中的默认方法
        MyInterface.method3();//调用接口中的静态方法
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值