终于在开发中用到自己的继承了、多态了

* 关于继承、多态,我想学过java的人都熟悉,来跟着我回忆一下面向对象的三大特性:封装、继承、多态。但是我们以前学的主要就是什么叫做继承,以及我们怎么去写一个继承,在java里面用extends,在c++里面用:,但是我们学完后可能只是会写了,但是发现病没用怎么用的到,尤其在刚开始做开发的时候,我们有时候即使需要用继承,但我们也不知道怎么去用。在这里我就以我的一个例子来说一下继承在开发中的使用。

前一段时间我在学习写贪吃蛇,在写贪吃蛇游戏的时候,我几乎没用到半点的继承,我也非常的想用,但是不知道到底应该在什么时候用,或者不知道怎么去使用,所以我记得我在写贪吃蛇游戏中的砖块以及苹果,还有边界的时候我虽然想用继承在里面(因为这三者都只是一个颜色块),但是最后写完了却发现还是用的if-else判断的,这样大大的降低了代码的可读性 – 例如我在主界面要画出来这三样东西,我以前的做法是:
{

 List<Edg> edg;//边界
 edg.add(...);
 List<Block> block;//砖块
 block.add();
 List<Apple> apple;//苹果
 //然后分别调用draw方法画出
 for{
 block.draw();
 }
 ..
 ..

}
这样写虽然能够去实现功能,但是这样的实现方法无疑是麻烦的,并且增加了代码的冗余。我也是后来觉得这样写不好,所以我就更改了策略,便把这些都集成于一个ColorBlock类,这样的话大家只需要去重写有关draw方法就行了。
实现大概如下
class ColorBlock {


  draw();//省略写法,但要抽象,因为要多态
}
class Block extends ColorBlock{
  darw(){};//Block的draw的实现
}

class Apple extends ColorBlock{
  darw(){};//Apple的draw的实现
}
....
经过这样的定义后我们在画的时候就简单了
List<ColorBlock> cblock;
cblock.add(new Block());
cblock.add(new Apple());
for(){
  cblock.draw();
}
虽然这样写看着有些麻烦,但是其实用起来相当的舒服,以后要想加入新的元素,就只需要将其继承ColorBlock,然后加到那个List里面就ok了,岂不是爽哉,增加了扩展性,也使代码看起来有条理。

上面就是我在这个案例里面关于继承和多态使用的一点总结,总的就是说把同种类型的东西抽象出一个父类或者接口,并在其中增加抽象方法,然后子类实现那些方法,这样的话在使用的时候只需要用父类来指向子类对象,剩下的java帮你做了,你不需要去判断他是一个Apple或者Block,java帮你做了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值