现在通过例子说明:
假设有2个类 Play和Walk
public class Play {
public void playPhone() {
System.out.println("play iphone");
}
}
public class Walk {
public void walk() {
System.out.println("I walk on the street");
}
}
现在需要一个适配器,使一个人一边走路一边玩手机
可以使得适配器继承其中一个类,然后将另一个类作为该适配器类的成员变量。
public class WalkAdapter {
private Play play;
public WalkAdapter(Play play) {
this.play = play;
}
public void play() {
return play.playPhone();
}
}
还可以采用多继承,但是
Java没有多继承,只能通过接口实现。设置两个接口,分别让两个类实现接口。
public interface IPlay {
public void playPhone();
}
public interface IWalk {
public void walk();
}
public class Play implements IPlay{
@Override
public void playPhone() {
System.out.println("play iphone");
}
}
public class Walk implements IWalk{
@Override
public void walk() {
System.out.println("I walk on the street");
}
}
然后让Adapter实现2个接口,同时让2个类的对象作为Adapter的成员变量。
public class Adapter implements IWalk, IPlay {
private Play play;
private Walk walk;
public Adapter(Play play, Walk walk) {
this.play = play;
this.walk = walk;
}
public void play() {
return play.playPhone();
}
public void walk() {
return walk.walk();
}