最近在写坦克大战小游戏,对继承的理解感觉还是不深刻。所以到此地取经,希望能得到一些指点。大概是这样,有我的坦克,敌方坦克,友军坦克,我军子弹,敌军子弹这些东西本开始我就写了坦克和子弹两个类,后来发现坦克和子弹的move方法,draw方法都可以复用,所以想把子弹和坦克只上加上moveable类,在类中定义x,y,team等共有的元素,并写好move方法。这样能省不少功夫。但是问题出在子弹和坦克的速度是不一样的,所以在move方法里没法体现了。本想将speed定义为常量的(安全,方便改),但是在moveable类做不到这一点,只能将其定义为变量,然后在构造函数里根据具体的对象给定速度。但这违背了我设计的初衷,我希望还是以常量的形式出现同样的,draw方法内画圆的width和height也有类似问题,请问到底如何组织框架呢?
解决方案 »
- java.lang.NullPointerException 不是一般的空
- 如何重复访问同一网络资源
- myeclipse6.0中连接mysq出错问题l
- A为什么不对,F为什么对?
- 意外发现,网上有JAVA视频录像免费下载,
- 请问“本地资源”具体是一个什么样的概念?
- 在Java里Line之类的线线是不是类,还有图形的问题,请进
- 开发工具该用哪种好???????
- 请各位大虾帮忙
- 公开oicq所有的通讯协议 [转贴]不知道是不是真的,哪个高手来验证一下
- 执行完查询之后是否需要显式调用PreparedStatement对象和ResultSet对象的close()方法?
- 求一个算法题!(为什么没有人会。。。)
public static void main(String[] args) {
GameItem gi1 = new Tank("我军坦克", 110);
GameItem gi2 = new Tank("敌军坦克", 120);
GameItem gi3 = new Tank("友军坦克", 130);
gi1.move();
gi2.move();
gi3.move();
}
}abstract class GameItem{
public String type;
public int speed;
//等等一些共有的属性
public GameItem(){
}
//构造的时候初始化所有属性
public GameItem(String type, int speed) {
super();
this.type = type;
this.speed = speed;
}
public abstract void move();
}class Tank extends GameItem{ public Tank(String type, int speed){
super(type, speed);
}
@Override
public void move() {
System.out.println("是" + type + "在移动,移动速度为:" + speed);
}
}