初识接口1

在文章开始之前我们先来探讨一下,首先我们得明白一个东西,JAVA是不支持多层继承的!

在前面的学习中我们知道JAVA的继承主要是单继承,子类继承父类--->object类。

直接或者间接去继承父类最后到object类,而且最重要的一点就是子类会继承父类或者object类的全部,包括私有属性修饰的成员方法和变量,但我们知道并不是在所有实现需求的过程中都需要全部继承,因此我们学习了一个新的知识抽象类,并且JAVA继承不同于c++的特性可以同时继承A和B两个类,继承里面方法的重写对于接口和抽象类来说都是十分重要的,可以说接口弥补了继承的短板或者说基于继承。因为用到了重写和final关键字等

所以当你想到接口时,你就可以把继承和抽象类联系起来,这能够形成更加清晰的框架体系

接口  

生活中有许多接口,列如电脑的usb接口和雷电接口网线接口等

包括各种插座接口,但是他们都是有规则有协议的,列如http或者欧洲要求的type-c接口

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

语法规则

接口的定义格式与定义类的格式基本相同,将class关键字换成关键字,就定义了一个接口

这里是四种的写法,但是我们只需要写void(返回值类型)加方法名就行,因为编译器会提供默认方法,在阿里编码规范中也推荐这样写

注意:1不能用final和private修饰,因为我们用接口主要是重写接口方法

2接口中的方法不能有实现;只能在其他类重写时实现,如果其他类实现接口并重写方法,但不实现方法,那么那个类也会默认为抽象类

3不能实咧对象,因为有abstcact

接口使用

接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法

注意:子类和父类之间是extend继承关系,接口与类之间是implements实现关系

使用1

类实现接口必须去重写接口的方法,因为都是默认abstract类,必须重写

可供多个类使用

使用2

一个类只能继承一个类,但一个类可以实现多个接口。

咧如:这里鸭类继承了动物类,并且实现了两个接口。

3我们在使用接口时,也体现了向上转型(多态)

接口的继承性

在Java中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。即:使用接口可以达到多继承

此时我们用一个类去实现这个接口就会重写两种接口里的方法,当然子类继承父类接口同时子类也可以提供自己的接口

接口中的成员变量

接口中的成员变量默认被public static final修饰。

jdk8的接口特性
特性一

接口中的静态方法可以有方法体,静态方法默认 public static修饰 ,只能接口来调用,不能用实现类来调用。

default的使用1

接口中的default也有方法体实现,同时还能被实现类继承并重写。因为接口中除了抽象方法还能继承和重写的只有default方法,因此default 方法就是默认方法。

当类去实现两个接口时,当两个接口中都有相同默认的方方法名和参数时,此时程序会报错,所以实现类中必须去重写同名的默认方法。(只需要重写一次,程序会默认重写两个接口的方法),当你去调用的时候默认调用自己重写的,当你想去调用接口中的方法时,就必须用“接口名.super.方法名”来调用 冽如 compareA.superi.class    compareB.super.class.

使用2

当子类继承父类并且实现了接口,父类和接口中有同名的方法时,此时不会报错,因为遵循类优先的原则。

接口与抽象类的区别

抽象类和普通类一样有普通的成员变量和普通的方法和构造函数,而接口中只有成员变量和抽象方法,同时成员变量还被public static final修饰

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值