下载此文档

鸭子游戏程序参考.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
鸭子游戏程序参考.doc模拟鸭子游戏的应用程序,要求:游戏中会出现各种颜色外形的鸭子,一边游泳戏水,一边 呱呱叫。
第一种方法:(一次性代码)
直接编写出各种鸭了的类:MallardDuck//野鸭,RedheadDuck//红头鸭,各类有三个方法: quack():叫的方法
swim():游水的方法
display():外形的方法
第二种方法:运用继承的特性,将其中共同的部分提升出来,避免重复编程。 即:设计一个鸭子的超类(Superclass),并让各种鸭子继承这个超类。
public class Duck{
public void quack(){ 〃呱呱叫
("呱呱叫”);
}
public void swim(){ 〃游泳
("游泳”);
}
public abstratact void display();
}
对于它的子类只需简单的继承就可以了,并实现自己的display()方法。
〃野鸭
public class MallardDuck extends Duck{
public void display(){
("Sf 鸭的颜色...");
}
}
//红头鸭
public class RedheadDuck extends Duck{
public void display(){
("lT 头鸭的颜色
不幸的是,现在客户又提出了新的需求,想讣鸭了飞起来。这个对于我们00程序员,在 简单不过了,在超类中在加一
个方法就可以了。
public class Duck{
public void quack(){ 〃呱呱叫
("呱呱叫”);
}
public void swim(){ 〃游泳
("游泳”);
}
public abstract void display();
public void fly(){
(''飞吧!鸭子”);
对于不能飞的鸭子,在子类中只需简单的覆盖。 〃残废鸭
public class DisabledDuck extends Duck{ public void display(){
("残废鸭的颜色
}
public void fly(){
〃覆盖,变成什么事都不做。
其它会飞的鸭了不用覆盖。
这样所有的继承这个超类的鸭子都会fly T。但是问题又出来了,客户又提出有的鸭子会飞, 有的不能飞。
>>>>>>点评:
对于上面的设计,你可能发现一些弊端,如果超类有新的特性,子类都必须变动,这是我们 开发最不喜欢看到的,一个类变让另一个类也跟着变,这有点不符合00设计了。这样很 显然的耦合了一起。利用继承->耦合度太高了.
第三种方法:
用接口改进.
我们把容易引起变化的部分提取出来并封装之,来应付以后的变法。虽然代码量加大了,但 可用性提高了,耦合度也降低了。
我们把Duck中的fly方法和quack提取出来。
public interface Fly

鸭子游戏程序参考 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小雄
  • 文件大小86 KB
  • 时间2021-09-26