Java编程思想学习笔记——接口
2015-07-22 23:13
295 查看
1.抽象类和抽象方法
抽象方法:不完整的,仅有声明而没有方法体。abstract void f();
抽象类:包含抽象方法的类。(若一个类包含一个或多个抽象方法,则该类必须限定为抽象的。)
1.用抽象类直接创建对象是不安全的,因为这个抽象类是不完整的。编译器通过这种方式保证了
抽象类的纯粹性。
public abstract class Person { public abstract void eat(); public abstract void pee(); public abstract void sleep(); } //不能直接用抽象类创建对象 //Person p = new Person();//错误
2.一个类从抽象类中继承,若想创建改类的对象,就必须实现基类中的所有抽象方法。否则将无法创建该类的对象,
并且导出类也是抽象类。
//一个类继承自抽象类,必须实现这个抽象类中的所有抽象方法 public class Male extends Person { @Override public void eat() { System.out.println("Male eat a lot!"); } @Override public void pee() { System.out.println("Male pee by standing up"); } @Override public void sleep() { System.out.println("Male sleep"); } } //创建改导出类的对象 Person p = new Male();
3.可以创建一个没有任何抽象方法的抽象类。(若有这样一个类,包含任何抽象方法都显得没有实际意义,而且我们也想阻止产生这个类的任何对象)
4.抽象类并不需要所有的方法都是抽象的。
作用:
1.明确类的抽象性,并告诉用户和编译器打算怎样来使用它们。
2.抽象类是很有用的重构工具,使我们能很容易的将公共方法沿着继承层次向上移动(也就是将公共方法抽取重构到抽象类中)
2.接口
interface关键字使抽象更进一步,产生一个完全抽象的类,没有提供任何具体的实现。(只有方法名,参数列表和返回类型,没有任何方法体。接口只提供了形式,而未提供任何具体实现)public interface People { void eat(); void sleep(); void pee(); }
一个接口表示:“所有实现了该特定接口的类看起来都像这样”
接口被用来建立类和类之间的协议(protocol)。
接口不仅仅是一个极度抽象的类,因为接口允许我们通过创建一个能够被向上转型为多种基类的类型
来实现类似于多重继承的特性。(Java只支持单继承,但可以通过实现接口来达到多继承的效果)
接口中可以包含域,但是这些域隐式地是static和final的。
使用implements关键字让一个类遵循某个接口(或是一组接口)。它表示:"接口只是它的外貌(what it looks like),我们用类实现接口来声明它是如何工作的(how it works)"
3.完全解耦
策略设计模式: 创建根据所传递的参数对象的不同而具有不同的行为的方法(这类方法包含所要执行的算法中固定不变的部分,而策略包含变换的部分,策略就是传递进去的参数对象)
适配器设计模式: 适配器中的代码将接受所拥有的接口,并产生所需要的接口。
将接口从具体实现中解耦使得接口可以应用于多种不同的具体实现,因此代码也就更具复用性。
相关文章推荐
- Java设计模式之基本原则(一)
- java基础之unicode和utf-8和assci之间的关系
- JAVA编程思想_笔记(七)
- JAVA编程思想_笔记(六)
- struts (七) 域模型
- springMVC拦截器配置
- java动态代理
- 2015第30周三Spring常用工具类
- Java IO学习【2】一个关于换行、续写的的小问题
- 项目下.java文件采用不同编码方案编译时的编码问题
- 利用struts实现jsp中的图片上传和预览
- EHcache注解使用(ehcache-spring-annotations)
- Javaweb传参乱码
- 导入java项目时出现红色叹号问题的解决
- java 设计模式 动态代理
- 在cmd中运行java程序
- java-创建线程的两种方式
- java学习笔记一
- 文件复制实现
- java基础之数组