适配器模式java

[实验任务一]:双向适配器

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

 

 

 

代码按照图中顺序

复制代码
package test8;

public class Adapter implements Cat,Dog{
    private Cat cat=new Realcat();
    private Dog dog=new Realdog();
    public void setcat(Cat _cat){
        cat=_cat;
    }
    public void setdog(Dog _dog){
        dog=_dog;
    }
    public void catchs(){}
    public void wang(){}
    public void run(){
        System.out.println("小狗学小猫:");
        cat.catchs();
    }
    public void miao(){
        System.out.println("小猫学小狗:");
        dog.wang();
    }
}
复制代码
package test8;

public interface Cat {
    public void catchs();
    public void miao();
}
package test8;

public interface Dog {
    public void wang();
    public void run();
}
复制代码
package test8;

public class Main {

    public static void main(String[] args) {
        Dog dog=new Adapter();
        Cat cat=new Adapter();
        dog.run();
        cat.miao();
    }
}
复制代码
复制代码
package test8;

public  class Realcat implements Cat{
    public void miao(){
        System.out.println("喵喵叫!");
    }
    public void catchs(){
        System.out.println("抓老鼠!");
    }
}
复制代码
复制代码
package test8;

public class Realdog implements Dog{
    public void wang(){
        System.out.println("汪汪叫!");
    }
    public void run(){
        System.out.println("跑跑跑!");
    }
}
复制代码

 

 

 

posted @   zrswheart  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2021-10-10 菜鸟教程java第十篇
点击右上角即可分享
微信分享提示