这一周老师带我们做了一个命令行小游戏来熟悉前几周学过的内容。

这是我第二次上手做一个自己的游戏,第一次做对战类的游戏,虽然是个命令行程序。这个程序里,老师要求必须使用抽象类和函数重载、函数重写来实现一些功能。事实上就算老师不这么说,我也会这样去做。

Screenshots-X001
Screenshots-X001

Java抽象类是真的方便,比如我可以定义一个抽象类叫英雄 Hero ,之后所有的角色的类都去继承Hero类。我可以把角色的基本功能调用都放在Hero里,这样继承这个抽象类的所有角色都会有这些基本功能。每个角色都有的特殊能力我做成抽象方法放在抽象类中让每个角色类去实现,这样也方便了扩展。

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍​‌​​‌​​‌​​‌‌​​‌‍​‌‌​​​‌‌​​‌‌‌‌‌‍​‌​‌​‌‌‌​​‌​‌‌‌‍​‌‌‌​‌​​​‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌‌​​​‌‌‌‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​‌‌‌‌​​‍‌​‌‌​‌​​‍‌​​​​‌‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌​‌‌​​‌​‍‌​‌‌‌‌​​‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​‌‌‍‌‌​‌​​‌​‍‌‌​​‌‌​‌‍‌‌​​‌​‌‌‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌‌‌​‌‍‌​​‌​​‌‌‍‌​​‌​​​​‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌‌‌​​‍‌​​‌​‌​​‍‌​​​​‌‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌‌​‌​​​‌‍‌​​​‌‌​​‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍‌​​‌‌​‌​‍‌​‌​​​‌‌‍‌​​​‌‌​​‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​‌‌​‌‌‍‌​​​​‌‌​‍‌​‌​​​‌‌‍‌​​‌​‌​‌‍‌​​‌‌‌‌​‍‌​​​‌​​‌‍‌​​‌‌‌‌​‍‌​​​‌‌​​‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​‌‌​‌‌‍‌​​​​‌‌​‍‌‌​​​‌‌‌‍‌‌​‌​​​‌‍‌​​‌​​‌​‍‌​​‌‌​‌‌

不过中途也遇到了一个坑,子类定义的属性和父类定义的属性不能实现覆盖,如果想要把父类继承过来的属性覆盖就需要使用super关键字进行重新赋值。另外一个问题就是,通过Scanner输入的字符串在经过split切割以后,在if中无论是用==还是.equals来判断,都始终返回false,无论左右是否相同,但是使用switch可以正常进case,这个的原因目前还没有找到。
<center>

Cansll/JavaSmallGame - GitHub
Cansll/JavaSmallGame - GitHub

</center>