java设计模式 (二):duck游戏

duck游戏

//鸭子抽象类
public abstract class duck1 {

	public duck1() {
	}

	FlyBehaviro myFlyBehavior;

	QuackBehavior myQuackBehavior;

	public void fly() {

		myFlyBehavior.fly();

	}

	public void quack() {

		myQuackBehavior.QuackBehavior();

	}

	public abstract void display();

}


//定义飞行接口
interface FlyBehaviro {

	public void fly();

}

//定义叫声接口
interface QuackBehavior {

	public void QuackBehavior();

}

//飞行类
class flyNoWay implements FlyBehaviro {
	@Override
	public void fly() {
		System.out.println(" i can not fly");
	}
}

class canfly implements FlyBehaviro {
	@Override
	public void fly() {
		System.out.println("i can fly");
	}
}

//叫声类
class waquack implements QuackBehavior {
	@Override
	public void QuackBehavior() {
		System.out.println("wawa");
	}
}

class noquack implements QuackBehavior {
	@Override
	public void QuackBehavior() {
		System.out.println("......");
	}
}

class guquack implements QuackBehavior {
	@Override
	public void QuackBehavior() {
		System.out.println("guagua");
	}
}

//绿鸭
class greenduck extends duck1 {
	public greenduck() {
		myFlyBehavior = new canfly();
		myQuackBehavior = new guquack();
	}

	@Override
	public void display() {
		System.out.println("i am greenduck");
	}

}

//塑料鸭子
class plasticduck extends duck1 {
	public plasticduck() {
		myFlyBehavior = new flyNoWay();
		myQuackBehavior = new noquack();
	}

	@Override
	public void display() {
		System.out.println("no color duck");
	}

}

这里定义一个鸭子类

public class duck {
	public static void main(String[] args) {
//		绿鸭
		duck1 mall = new greenduck();
		mall.display();
		mall.fly();
		mall.quack();
		
//		塑料鸭子
		duck1 pla = new plasticduck();
		pla.display();
		pla.fly();
		pla.quack();	
	}
}

运行结果:

i
am greenduck
i can fly
guagua
no color duck
i can not fly

全部评论

相关推荐

Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务