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

接口的本质.png

概念

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

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

作用

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


image.png

使用

  • 定义接口
image.png

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

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

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

compareTo方法

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

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

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

  • 实现接口


    image.png

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

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

Point的compareTo实现

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

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

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

  • 使用接口

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


image.png
image.png

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

代码复用

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

接口的细节

  • 接口中的变量

接口中可以定义变量

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

image.png
  • 接口的继承

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


image.png
  • 类的继承与接口

类的继承与接口可以共存

image.png
  • instanceof

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


image.png

使用接口替代继承

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,123评论 0 4
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,082评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,170评论 1 32
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,283评论 0 2
  • 转自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帅199207阅读 8,673评论 3 93