鬼剑士

举例说明什么是抽象类!让抽象变的不再抽象!!

天涯浪子 提交于 2019-11-28 04:19:09
抽象类之所以比较难理解,大概就是因为他太抽象了吧,哈哈,这好像是废话。。 虽然很早之前就知道这个抽象类的概念,但是一直纠结于一个问题:你这个抽象类在实际开发过程中到底有个毛线用?? 所以呢,今天想通过一个例子,来彻底搞清楚这家伙在实际开发中的作用!! 假设我是一个地下城的鬼剑士玩家,通过游戏可以实现以下功能: 1、我的 鬼剑士一次 只能放一个技能 2、我的鬼剑士有 很多技能 3、我可以通过技能键 选择释放 哪个技能 4、我可以用技能打怪 (打怪释放技能音效) 先来看不需要抽象类的实现方式: 第一步:定义技能!! 假设我现在5级,有两个技能分别是上挑(Up)和鬼斩(Kill),那我现在定义这两个技能: public class Up { public void Speak() { // 上挑音效 Console.WriteLine("嘿!!!"); } } public class Kill { public void Speak() { // 鬼斩音效 Console.WriteLine("哈!!!"); } } 第二部:定义鬼剑士!! 大街上一堆角色,不同的角色有不同的属性,所以呢,会上挑和鬼斩的才能使鬼战士。 public class Swordsman { // 对应的两个技能 private Up up; private Kill kill; // 选择释放哪个技能