JAVA适配器模式

来源:互联网 发布:mysql 触发器 存储过程 编辑:程序博客网 时间:2024/05/29 17:26



package com.适配器模式;abstract class Player {//抽象球员类protected String name;public Player(String name){this.name=name;}public abstract void Attack();public abstract void Defense();}
package com.适配器模式;public class Forwardes extends Player {//会英语的外国球员public Forwardes(String name) {//因为父类没有无参构造函数,抽象的父类写了有参构造函数,//子类必须有构造方法显示调用父类的构造方法super(name);}@Overridepublic void Attack() {System.out.println(this.name +":前锋 Attack");//继承父类的name}@Overridepublic void Defense() {System.out.println(this.name+":前锋 Defense");}}

package com.适配器模式;public class ForeignCenter {//不会英语的中国球员private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void ForeignAttack(){System.out.println(this.name +":外籍前锋 进攻");//继承父类的name}public void  ForeignDefense() {System.out.println(this.name+":外籍前锋 防守");}}
package com.适配器模式;public class Traslator extends Player {//翻译员,作为适配器连接会英语的球员和不会英语的球员private ForeignCenter fc = new ForeignCenter();public Traslator(String name) {super(name);fc.setName(name);}@Overridepublic void Attack() {fc.ForeignAttack();}@Overridepublic void Defense() {fc.ForeignDefense();}}

package com.适配器模式;public class Main {public static void main(String args[]){Player a=new Forwardes("巴蒂尔");a.Attack();a.Defense();Player ym=new Traslator("姚明");ym.Attack();ym.Defense();}}

巴蒂尔:前锋 Attack巴蒂尔:前锋 Defense姚明:外籍前锋 进攻姚明:外籍前锋 防守



0 0
原创粉丝点击