Java笔记整理:接口

来源:互联网 发布:兼职数据录入是真的吗 编辑:程序博客网 时间:2024/06/04 01:35

抽象类和抽象方法

抽象类是介于普通类和接口之间的形式
包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法, 该类必须限定为抽象的

为抽象类创建对象是不安全的,会产生错误
导出类必须实现基类的抽象方法,否则该导出类也是抽象类
必须用abstract关键字来限定抽象类和抽象方法
抽象类可以没有任何抽象方法


接口

interface关键字产生一个完全抽象的“类”,其中根本没有任何具体实现,声明方法但没有任何方法体
接口被用来建立类与类之间的协议

接口前可以添加public关键字,否则就具有包访问权限
接口可以包含域,隐式地位static和final的

实现接口要使用implements关键字链接
接口中的方法隐式地为public的。实现接口时,要实现的方法必须定义为public的,否则是包访问权限

可以将实现类对象向上转型为接口类型


完全解耦

遵循接口来遍写类,可以减轻接口和类型的耦合


多重继承

接口比抽象类更纯粹的地方在于,接口没有任何具体实现,即没有任何与接口相关的存储
因此可以继承任意多个接口,并可以向上转型为任意一个接口

继承的类必须放在前面,后面跟着接口
基类中的同名方法可以帮助实现接口中的方法

如果知道某事物应该成为一个基类,首先考虑让其成为接口


通过继承扩展接口

接口可以继承接口,用extends
名字冲突
如果方法相同则不会有什么问题,但是如果签名或者返回类型不同,会导致接口间不相容(incompatible)

适配接口

一个接口可以有不同的实现方式
常用的方法是策略模式:“你可以用任何你想要的对象来调用我的方法,只要你的对象遵循我的接口”
接口对比类的强大之处:让方法接受接口,可以让任何一种类都适用该方法


接口中的域

接口中的任何域都自动是static,final和public的
接口中的域不能是空final,但可以被非常量表达式初始化
这些域不是接口的一部分,被存储在接口的静态存储区域内


嵌套接口

接口可以嵌套在其他接口中
实现某个接口时,不需要实现嵌套在内部的接口


接口和工厂

典型设计模式:工厂方法模式
代码将完全和接口的实现分离,可以透明地将某个实现替换为另一个实现

0 0
原创粉丝点击