在我们学习c#类的时候我们老师给我们写了这样一道题:你上班的公司做了一套相当成功的模拟蛋仔的游戏:SimEggs。游戏中会出现各种蛋仔,蛋仔的种类及属性如下: 种类:绿头蛋仔、红头蛋仔、橡皮蛋仔、诱饵蛋仔……不确定什么时候上线新类型蛋仔。 属性:外观、游泳行为、飞行行为、狮吼行为……也不确定新行为。 不同种类的蛋仔所对应的属性如下: 由于不同种类的蛋仔可能具有不同的行为,因此,可以使如何利用多态来实现? 绿头蛋仔:绿头蛋仔的外观、会游泳、会飞行、呱呱叫。 红头蛋仔:红头蛋仔的外观、会游泳、会飞行、呱呱叫。 橡皮蛋仔:橡皮蛋仔的外观、会游泳(漂浮)、不会飞行、吱吱叫。 诱饵蛋仔:诱饵蛋仔的外观、会游泳(漂浮)、不会飞行、不会叫。 ……未来可能会有好多好多的新物种,新行为……如何应对呢?
老师和我们说,在我们未来工作的时候往往会出现很多不一样的情况,比如拿这道题来说,在我们设计一个角色的初期他往往是简单的,但随着游戏的开发就会出现有一些角色需要添加一些新的属性,或者是一些数值上的改变,这种改变一个两个还好,只需要对其中几个代码进行重新编辑,但如果是对于多个角色进行改变,一个个改或许效率不高,如果是时间充裕那问题不大,但如果是在时间紧任务重的情况下弊端就体现出来了,所以为了应对这种情况,我们老师教了我们一种类的使用方法。
首先我们要写一个基类,这个类是一个抽象类
然后是对一些蛋的细节设计(会不会游泳,会不会叫等),其实大致的格式差不多,都是基于一些基础属性上添加一些不一样的细节
最后运行出来大概是这样的一个效果
其实可以看的出来,我学习到的知识还是属于很基础的,操作上也有着很多重复,但我觉得这次学习的关于类的知识还是比较有用的,对于未来工作上遇到的一些可能发生的问题也有着他的解决方法,对于大范围的角色修改上运用这个类的方法是非常的有用,从简单的知识一步步的积累,这样才能为未来打下基础。