美文网首页java之路
JavaSE梳理八:接口

JavaSE梳理八:接口

作者: 今天比昨天努力 | 来源:发表于2019-11-14 21:51 被阅读0次

    接口和内部类提供将接口和实现分离的更加结构化的方法。

    建立通用接口的唯一理由:不同的子类可以用不同的方法表示此接口。

    接口拥有:public和“包访问”两种可视性,适用于嵌套接口,非嵌套接口。新添加:private

抽象基类简称抽象类

    抽象方法机制:仅有声明没有方法体,abstract void f();包含抽象方法的类叫抽象类。如果一个类包含一个或多个抽象方法这个类就是抽象类。但是抽象类不一定就必须有抽象方法。

    抽象类是不完整的所以不能创建对象,不然编译器会报错。如果继承抽象类,那么就必须为基类中的所有抽象方法提供方法定义,否则导出类也是抽象类,并且编译器会强制我们用abstract关键字限定导出类。

    抽象类和抽象方法用处:使类的抽象性明确,并告知程序员和编译器如何使用。抽象类还是个重构工具,很容易的将公共方法沿着继承层次结构向上移动。

接口

    interface关键字使得类更加抽象。

    抽象和接口:

    abstract允许在类中创建一个或多个没有任何定义的方法-提供接口部分,但是没有提供任何具体实现。实现由继承者创建。

    interface产生一个完全抽象的类,没有提供具体实现,只允许创建者确定方法名,参数列表和返回类型,没有任何方法体。极度抽象的类允许通过创建一个能够向上转型为多种基类的类型,可以实现多重继承。接口中的域隐式的static和final的。

implements:让类遵循某个或一组接口。表示:interface知识外貌,但是implements声明如何工作。如果实现了接口的类九百昵称了普通类,可以扩展它。

完全解耦

策略设计模式:创建一个能够根据所传递的参数对象的不同而具有不同行为的方法。“策略”包含变化的部分,方法包含所要执行的算法中固定不变的部分。

适配器设计模式:接受所拥有的接口,产生所需要的接口。

    将接口从具体实现中解耦使得接口可以应用于多种不同的具体实现,代码会更可复用。

多重继承

概念:组合多个类的接口的行为。

    将所有的接口名都置于implements关键字之后 。当组合了具体类和接口时需要将具体类放在前面,后面跟着接口,否则编译器会报错。

    使用接口的核心原因:向上转型为多个基类型,由此带来灵活性。第二个原因:与使用抽象基类相同,防止客户端程序员创建该类的对象。

继承

通过继承可一在接口中添加的方法声明

,也可以在新接口中组合多个接口。在组合不同接口中使用相同的方法名通常会造成代码可读性的混乱。相同的方法也就是返回值,方法名,参数是相同 不会有什么问题。但是如果签名或者返回类型不同就会出现报错,编译器就会提示编译不通过。

    接口中的域默认都是public,在SE5之后,enum关键字完全可以替代接口中的域。域并不属于接口,他的值被存储在接口的静态存储区域内。

嵌套接口

接口可以嵌套在类或者其他接口中。private嵌套接口:实现private接口只是一种方式,它强制该接口中的方法不能添加任何类型信息,不允许向上转型。当实现某个接口时,并不需要实现嵌套再其内部的任何接口,private接口不能再定义它的类之外被实现。

接口与工厂

工厂方法设计模式:生成遵循某个接口的对象的典型方式。不是直接调用构造器,而是创建方法,该工厂对象将生成接口的某个实现的对象,通过这种方式,接口和接口的实现分离,可以让某个实现替换为另一个实现。

总结:恰当的优先选择类而不是接口,从类开始如果接口的必须行非常明确那么就需要重构。

相关文章

  • JavaSE梳理八:接口

    接口和内部类提供将接口和实现分离的更加结构化的方法。 建立通用接口的唯一理由:不同的子类可以用不同的方法表示此...

  • JavaSE进阶八 集合二 Map接口

    1,Map接口 Map和Collection没有继承关系。 Map集合以key和value的方式存储数据:键值对k...

  • JavaSE梳理十一:异常

    异常基本概念:用名字代表发生的问题,并且异常的名称容易理解。 异常处理是Java中唯一正式的错误报告机制。 ...

  • JavaSE梳理七:多态

    1,多态 在面向对象设计中,多态是继数据抽象和继承之间的第三种基本特征。多态作用消除类型之间的耦合关系。多态方法调...

  • JavaSE梳理十五:文件

    【462】 1,File 路径的分隔符在不同的系统中的体现: Windows:目录的分隔符:“\”,反斜杠。所以在...

  • JavaSE进阶八 集合一 Collection接口

    1 集合概述 什么是集合,有什么作用?数组其实就是一个集合,集合实际上就是一个容器,可以来容纳其他类型的数据。 ...

  • JDK源码分析之TreeMap(一)

    老三样:官方接口文档,类图,源码官方接口文档:https://docs.oracle.com/javase/8/d...

  • JavaSE进阶一 接口

    Java语言中的抽象类 类到对象是实例化,对象到类是抽象类。 什么是抽象类?类和类之间具有共同特征,将这些共同特征...

  • 2019-06-09 jave核心代码看书笔记(六)接口、lam

    一,接口 1.接口中的静态方法:javaSE 8 中,允许在接口中增加静态的方法,目前为止,静态方法都是放在伴随类...

  • JavaSE梳理十:持有对象

    Java有多种方式保存对象,确切的说是对象的引用。譬如数组是保存一组对象的最有效的方式,但是数组有固定的尺寸,不适...

网友评论

    本文标题:JavaSE梳理八:接口

    本文链接:https://www.haomeiwen.com/subject/mxtdictx.html