java 接口的本质_《Java编程的逻辑》笔记 19 - 接口的本质

b05b23c22ae7

接口的本质.png

概念

很多时候,我们实际上关心的,并不是对象的类型,而是对象的能力

Java使用接口这个概念来表示能力

作用

双方对象并不直接互相依赖,它们只是通过接口间接交互

b05b23c22ae7

image.png

使用

定义接口

b05b23c22ae7

image.png

interface关键字声明接口,修饰符一般都是public。

interface后面就是接口的名字MyComparable。

接口定义里面,声明了一个方法compareTo,但没有定义方法体,接口都不实现方法。接口方法不需要加修饰符,加与不加都是public的,不能是别的修饰符。

compareTo方法

方法的参数是一个Object类型的变量other,表示另一个参与比较的对象。

第一个参与比较的对象是自己

返回结果是int类型,-1表示自己小于参数对象,0表示相同,1表示大于参数对象

实现接口

b05b23c22ae7

image.png

implements关键字表示实现接口,前面是类名,后面是接口名。

实现接口必须要实现接口中声明的方法,Point实现了compareTo方法

Point的compareTo实现

Point不能与其他类型的对象进行比较,它首先检查要比较的对象是否是Point类型,如果不是,使用throw抛出一个异常

如果是Point类型,使用强制类型转换将Object类型的参数other转换为Point类型的参数otherPoint。

这种显式的类型检查和强制转换是可以使用泛型机制避免的

使用接口

接口不能new,不能直接创建一个接口对象,对象只能通过类来创建。但可以声明接口类型的变量,引用实现了接口的类对象

b05b23c22ae7

image.png

b05b23c22ae7

image.png

针对接口而非具体类型进行编程,是计算机程序的一种重要思维方式

代码复用

更重要的是降低了耦合,提高了灵活性

接口的细节

接口中的变量

接口中可以定义变量

修饰符是public static final,但这个修饰符是可选的,即使不写,也是public static final

b05b23c22ae7

image.png

接口的继承

接口也可以继承,一个接口可以继承别的接口,继承的基本概念与类一样,但与类不同,接口可以有多个父接口

b05b23c22ae7

image.png

类的继承与接口

类的继承与接口可以共存

b05b23c22ae7

image.png

instanceof

与类一样,接口也可以使用instanceof关键字

b05b23c22ae7

image.png

使用接口替代继承

使用接口,针对接口编程,可以实现统一处理不同类型的对象,但接口没有代码实现,无法复用代码。将组合和接口结合起来,就既可以统一处理,也可以复用代码了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值