接口

什么是接口

一个Java接口 是一些方法特征的集合,这些方法特征当然来自于具体方法,但是它们一般都是来自于一些在系统中不断出现的方法。一个接口只有方法的特征,而没有方法的实现,因此这些方法在不同的地方被实现时,可以具有完全不同的行为。

在Java语言规范中,一个方法的特征仅仅包括方法的名字,参量的数目和种类,而不包括方法的返回类型,参量的名字以及所抛出的异常,在Java编译器检查方法的置换时候,则进一步检查2个方法(分父类型与子类型)的返回类型和抛出的异常是否相同。

在使用接口时候,需要指明接口本身,以及实现这个接口的类。这种关系叫做接口继承;而一个类是另一个类的子类,这种关系叫实现继承。接口继承的规则与实现继承的规则不同,一个类最多只能够有一个父类,但是可以同时实现几个接口

Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更为抽象化。

一个Java接口的方法只能是抽象的和公开的,Java接口不能有构造方法。Java接口可以有public,静态的和final的属性。

实现一个共同的Java接口的两个类常常完全不同,但是有一组相同的方法和常数。一些看上去毫不相干的类,可以提供相类似的服务,从而具有相同的接口。

接口和类的最重要的区别是,接口仅仅描述方法的特征(Signature),而不给出方法的实现;而类不仅给出方法的特征,而且给出方法的实现。因此,接口把方法的特征和方法的实现分割开来。这种分割,体现在接口常常代表一个角色(role),它包装与 该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色可以由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求有任何其他的共同之处

为什么要使用接口

首先我们要思考如果没有接口会怎么样呢?一个类总归可以从另外一个类继承,难道这还不够吗?这需要了解一个名词 可插入性 ,因为Java语言是一个单继承的语言,换而言之,一个类只能有一个父类,因此,在很多的情况下,这个类可能已经有了父类,这个时候给他加上一个新的超类是不现实的。但是接口是对可插入性的保证,在一个类的等级结构中的任何一类都可以实现一个接口,这个接口会影响到此类的所有子类,但是不会影响到此类的任何父类。此类将不得不实现这个接口所规定的方法,而其子类则可以从此类自动继承到这些方法,也可以选择置换掉所有这些方法,或者其中的某一些方法。这时候,这些子类就具有了可插入性。

关联的可插入性

一个对象要完成一项任务,所以需要知道其他对象,并且调用其他对象的方法,这个对象对其他对象的知识叫做关联。

如果一个管理不是针对一个具体类,而是针对一个接口的,那么任何实现这个接口的类都可以满足要求。换而言之,当前对象并不在意所关联的是哪一个具体类,而仅仅关心这个类是否实现了某一个接口。

调用的可插入性

一个对象不可避免的需要调用其他对象的方法,这种调用不一定非得是是某一个具体类,而可以是一个接口。这样一来,任何实现了这个接口的具体类都可以被当前对象调用,而当前对象到底调用的是哪一个具体类的实例则完全可以冬天地决定。

因此,接口提供了关联以及方法调用上的可插入性,软件系统规模越大,生命周期越长,接口的重要性就越大。接口使得软件系统在灵活性和可扩展性,可插入性方面得到保证

类型

Java接口(以及Java抽象类)用来声明一个新的类型

Java设计师应当主要使用Java接口和抽象Java类将软件单位与内部和外部耦合起来。换而言之,应当使用Java接口和抽象Java类而不是具体类进行变量的类型声明,参量的类型声明,方法的返回类型声明,以及参数类型的转换等。当然,一个更好的做法是仅仅使用Java接口,而不要使用抽象Java类来做到上面这些。

在理想的情况下,一个具体Java类应当只 实现Java接口和抽象Java类中声明过的方法,而不应当给出多余的方法


我好累,今天就写到这里吧

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 一、抽象类 1、抽象类含义的概括: 当多个类出现相同功能时,但功能主体不同,这样可以向上抽取,抽取时只抽取功能定义...
    玉圣阅读 828评论 0 6
  • 今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. ...
    Villain丶Cc阅读 1,355评论 0 17
  • 第03天java面向对象 今日内容介绍 ·接口 ·匿名对象&final ·多态 ·接口 1.接口的概述 接口是功能...
    chcvn阅读 451评论 0 0
  • 一朵花 开在寂静的午夜 无人闻到她的芬芳 无人见到她的忧伤 有人且问 为何不开放在阳光下? 花说 这世界太喧嚣 只...
    芷伈芷语阅读 191评论 0 0
  • 2014年4月25日由中国最高端的人力资源会员组织伯乐会主办的招聘创新国际论坛在上海浦东的丽思卡尔顿酒店顺利召开。...
    云才阅读 156评论 0 0