java接口

本文详细介绍了Java接口中的概念,包括接口作为引用数据类型的特性,以及从Java7到Java9接口新增的功能。重点讨论了默认方法、静态方法和私有方法的使用,强调了它们在接口升级、多接口实现中的作用。同时,解释了接口中的常量定义及命名规范,并阐述了类与接口的继承和实现关系。
摘要由CSDN通过智能技术生成

接口

接口是多个类的公共规范,接口是一种引用数据类型,最重要的内容就是其中的抽象方法。

public interface 接口名称{
	//接口内容
}
//注意
//换成了关键字interface后,编译生成的字节码文件仍然是:.java->.class

如果是java7,接口中可以包含的内容有:
1、常量
2、抽象方法
java8可以多包含:
3、默认方法: 解决接口升级的问题
4、静态方法
java9还可多包含有:
5、私有方法

接口的实现类必须覆盖重写所有的抽象方法,如果未能重写所有的抽象方法,那么一定是抽象类,因为抽象方法所在的类一定是抽象类

默认方法:

public default void interfaceDefaultMethod(int a ,int b){
    //方法体
}

静态方法:

public static void myStaticMethod(int a , double b){
    //方法体
    //注意,接口的静态方法不能由接口的实现类来调用
    //因为一个类可以实现多个接口
    //这就使得用实现类的对象去调用接口的静态方法可能存在冲突
}

用接口名称直接调用接口中的静态方法,接口名称.静态方法名

在接口中的默认方法调用私有方法

私有方法的存在为解决接口中默认方法中重复代码的问题,即只能在接口中由默认方法调用,但不能被接口的实现类对象调用,即应是私有的。java9开始接口中允许有私有方法。
1、普通私有方法,解决多个默认方法之间的重复代码问题

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

2、静态私有方法,解决多个静态方法之间重复代码的问题

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

接口当中也可以定义“成员变量”,但是必须使用public static final三个关键字进行修饰。
从效果上看,这其实就是接口的【常量】。
格式:

public static final 数据类型 常量名称 = 数据值;
注意事项

1、接口当中的常量,可以省略public static final ,在ideal中呈灰色,不写也可,但须记住接口中直接定义int i = 10;即为常量
2、接口中的常量必须进行赋值,不能不赋值。
3、接口当中的常量名称,使用完全大写的字母,用下划线进行分隔。

public interface MyInterfaceConst{
	//其实就是常量,一旦赋值不可以修改。
	public static final int NUM_OF_MY_CLASS = 12;
	//在ideal中上面的public static final 是灰色字体。 
}

继承父类实现多个接口

1、接口是没有静态代码块或构造方法的
2、一个类的直接父类是唯一的,但是一个类可以同时实现多个接口
3、如果实现类所实现的多个接口中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
4、如果实现类没有覆盖重写所有接口中所有的抽象方法,那么实现类就必须是一个抽象类。
5、如果实现类所实现的多个接口中,存在重复的默认方法,那么实现类就必须覆盖重写冲突的默认方法。
6、优先级问题,一个类如果直接父类中的成员方法与接口中的默认方法产生了冲突,优先使用父类当中的方法。

接口的继承关系

public interface MyInterface entends MyInterfaceA,MyInterfaceB{
	
}

接口的继承可以是多继承关系,而类与类之间是单继承的,直接父类只能有一个。
类与接口之间是多实现的,一个类可以实现多个接口。
多个父接口当中的抽象方法如果重复,没关系。
但是如果多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法覆盖重写,而且必须带着default关键字。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值