接口和抽象类的区别:
- 抽象类允许包含默写方法的实现,而接口是不允许的;
- 一个类要实现抽象类,它必须成为抽象类的一个子类,而实现接口的类只要定义了所要求的方法,并遵守通用的约定,不管这个类位于类层次的哪个地方;
接口可以构造出非层次结果的类型框架,比如一个接口可以继承多个其他的接口。还可以安全地增加一个类的功能。
当然,也可以把接口和抽象类的有点结合起来,对于你期望导出的每一个总要的接口,头提供一个抽象的骨架实现类,这样,接口的作用仍然是定义类型,骨架实现类负责所以与接口实现相关的工作。
抽象类也有明显的优势,它可以在一个类的后续的版本中方便的增加一个新的方法,但不影响到其他相关的类,而接口则做不到这一点。
总之,接口通常是定义具有多个实现类型的最佳途径(例外的情况:当演化的容易性比灵活性和功能更为重要的时候,应该使用抽象类来定义类型,但也必须
理解抽象类的局限性,并确保可以接受这些局限性),如果已经导出了一个重要的接口,那么,也应该考虑同时提供一个骨架实现类。最后,应该尽可能的谨慎设计
所有的公有接口,并通过编写多个实现来对它们进行全面的测试。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ilibaba/archive/2009/02/03/3860582.aspx
分享到:
相关推荐
effective java 读书笔记,第二版自己摘要并翻译,以备速查。
Effective Java读书笔记.pdf
Effective Java Effective Java Effective Java
effectiveJava的笔记
这是对Effective-Robotics-Programming-with-ROS这本书的中文学习笔记
Effective-Java读书笔记,别人分享的
记录了我的effective-Python学习笔记,精简了effective-Python中重要的部分。effective-Python是一本值得多看几遍的书,但是看后面的几遍的时候完全可以直接看自己的学习笔记。此学习笔记侧重与比较实用的部分即前四...
effective-java.pdf
Effective java 3 学习记录
2021年EFFECTIVEJAVA读书笔记.docx
Effective Enterprise Java
effective-java 配套代码
effective-go-zh-en-gitbooke
《Effective Java》第三版中文版目录 第一章 介绍 1 第二章 创建和销毁对象 4 1 考虑用静态工厂方法替换构造器 4 2 当遇到多个构造器参
Effective C++学习笔记 没有时间看Effictive C++书的人可以看看这个笔记 总结出了重点啊 适合有c++基础的人阅读
Effective Java读书笔记,记载了大部分我觉的有用的东西,前半部分有代码说明,但后半部分的代码,太过琐碎,就没有整理
基于Effective Java第二版的读书笔记,可以帮助你更好的阅读这边Java圣经,更快的理解其思想
effective-java-3rd-chinese前51条:文章翻译来源地址:about this repository本来以为只是个直接搬运的活,实际上不是。主要工作如下:改进排版,原有博文排版不太优秀,根据markdown 排版指北重新排版。内容修改,...
【Effective Java】阅读笔记markdown 文件