接口与抽象类的区别
1.一个子类只能继承一个抽象类,但是却可以实现很多个接口。
2.抽象类中可以有自己的数据成员,也可以有不是抽象类型的方法,接口中,只能有不能修改的成员,所有方法都是抽
象的。
3.实现抽象类和接口必须实现其中的每个方法,抽象类中可以有非抽象方法,接口不可以
4.接口中的变量类型都是public static final的,必须给初值,实现类中不可以重新定义,也不可以改变其值。抽象类中相
反。
适配器模式
一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配无法在一起工作的连个类能在一起工作。
例A有某些功能,但需要一个xml读取模块才能工作。
这个模块需要实现这个接口
public interface xmlread{
public InputStream xmlReader();
}
另一个类B恰好也有这个功能,但是B实现的是另外一个接口
public interface xmlread2{
public InputStream xmlReader2();
}
适配器的作用就体现了public class Adapter extends B implements xmlreader{
public InputStream xmlReader(){
this.xmlReader2();
}
}
适配器模式需要4个角色
1、目标,上例中就是 接口1
2、客户,
3、被适配者 上例中是B
4、适配器