「Efficient Android Threading 笔记」- C1 Android Components and the Need for Multiprocessing Android RecyclerView Android Socket Programming Supporting Multiple Screens Make a Reusable UI in Android App Development 如何在 Android Studio 中包含 *.so library,并使用库中定义的方法? 使用 SpannableString 格式化字符串,实现前景色、下划线、超链接、图文混排等 如何使用 bound service 完成进程间通信? 创建自定义视图 Creating custom views 通过 Android Theme & Style 定制应用的样式 「译」Android ViewPropertyAnimator 介绍 Android Animation Interpolator - Android 动画插值器源码笔记 「译」Android Animation in Honeycomb by Chet Haase(Android 3.0系统中的动画机制) 从 Android Sample ApiDemos 中学习 android.animation API 的用法 如何学习 Android Animation? 如何实现 Android ListView「上拉加载更多」? 「译」向Big Nerd Ranch提问:为什么Fragment在Android App开发中非常重要? 分类整理我在 SegmentFault 上针对某些问题作的回答 Android Servcie 后台服务总结笔记 如何在Android设备旋转时暂存数据以保护当前的交互状态? Android Message Handler 消息处理机制总结笔记 如何获取FragmentTabHost中指定标签页的Fragment? Fragment子类必须包含一个public无参构造器 如何更新及替换ViewPager中的Fragment? 如何使用Android UI Fragment开发“列表-详情”界面? 一个Android音频文本同步的英文有声读物App的开发过程 「Android编程权威指南笔记」Android应用本地化 通过jfeinstein10/SlidingMenu实现Android侧滑菜单 为Ubuntu14.04部署Android App的Eclipse开发环境 「Android编程权威指南笔记」使用ListFragment显示列表 「Android编程权威指南笔记」SDK版本与兼容 「Android编程权威指南笔记」Android布局和组件 「Android编程权威指南笔记」UI Fragment 「Android编程权威指南笔记」Activity 第一次开发iOS App和Android的对比总结笔记 「App Training笔记」创建第一个应用 「App Training笔记」开发入门训练大纲 Android APP - 从远程FTP服务器下载文件到本地

『笔记』Thinking in Java - 接口

2015年01月15日

TODO
第一遍没读懂,需要读第二遍。

2015-03-21

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

抽象方法:仅有声明,没有方法体,使用abstract关键字。
含有抽象方法的类,必须被限定为抽象类。
若想创建继承自抽象类的新类的对象,必须实现基类中所有抽象方法。
创建抽象类的目的是为所有导出类创建通用接口,使得类的抽象性明确起来,并告诉用户和编译器打算怎样使用它们。
抽象类方便重构。

interface比abstract更进一步。只提供接口的描述(方法名、参数列表、返回类型),不提供实现。一个接口表示“所有实现了该接口的类看起来都像这样”。任何实现了接口的类都可以调用接口的方法,因此接口被用来建立类与类之间的协议。(某些面对对象的编程语言通过关键字protocol实现该目的)。
而类方法不能用于不在该类继承体系中的类。

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

遇到无法修改的类(比如各种类库),可以使用适配器设计模式。适配器中的代码接受无法改变的接口,产生需要的接口。

Java只能继承一个类,但可以继承(或者说实现)多个接口(伪多重继承机制),并且可以向上转型为每个接口
在打算组合的不同接口中使用相同的方法名,会降低代码可读性。而当返回类型不同、参数列表又相同时,会造成错误。因为方法重载仅通过返回类型不能区分。

接口的一种常用方法就是策略设计模式:你可以用任何你想要的对象来调用我的方法,只要你的对象遵循我的接口。
方法的参数若是接口,而不是特定类,我们就可以将该方法作用于更多类,只要该类实现了这个接口。

java中标识具有常量初始化值的static final时,使用大写字母和下划线的风格。

工厂方法设计模式


知识共享许可协议
li2的博客WeiYi.Li 创作,采用 知识共享 署名-非商业性使用 4.0 国际 许可协议进行许可。
© 2011-2017. All rights reserved by WeiYi.Li. Powerd by Jekyll & LinAnYa's Theme