您的位置:首页 > 健康 > 美食 > 邯郸开发网站有哪些_成全视频免费观看在线看中国片_泰州网站整站优化_网络推广的优势

邯郸开发网站有哪些_成全视频免费观看在线看中国片_泰州网站整站优化_网络推广的优势

2025/2/26 3:59:21 来源:https://blog.csdn.net/Hikigaya_Hachi/article/details/143133898  浏览:    关键词:邯郸开发网站有哪些_成全视频免费观看在线看中国片_泰州网站整站优化_网络推广的优势
邯郸开发网站有哪些_成全视频免费观看在线看中国片_泰州网站整站优化_网络推广的优势

本章所有的代码都放在
https://github.com/hikinazimi/head-first-Csharp

使用冒号继承一个基类,子类扩展一个基类时,他会继承它的成员:也就是基类中的所有字段,属性和方法,他们会自动增加到子类

子类覆盖方法改变它继承的成员

  1. 基类中的方法增加virtual关键字
  2. 子类同名方法增加override关键字

子类使用base关键字访问它的基类

class Chamleon : Vwrtebrate
{public override void Eat(Food morsel){base.Eat(morsel);//调用基类方法}
}

基类有有构造器时,子类需要调用这个基类的构造器

  • 一个子类覆盖其基类中的一个方法时,总是调用子类中定义更特定的版本

抽象类

abstract class

  1. 抽象类可以有不完整的占位属性和方法,如一个属性只定义存储方法没有给出定义方法
  2. 只有抽象类才可以有抽象方法
  3. 抽象类不可以实例化

C#不允许多重继承

蜂巢管理系统

有一个Bee基类,4个继承的子类Queen,NectarCollector,HoneyManufacturer,EggCare
还有一个HoneyVault静态类,跟踪蜂巢的蜂蜜和花露

HoneyVaultr类,蜜蜂调用ConsumeHoney类消耗蜂蜜完成工作


namespace BeehiveManagementSystem
{class HoneyVault{public const float NECTAR_CONVERSION_RATIO = 0.19f;public const float LOW_LEVEL_WARNING = 10f;private static float honey = 25f;private static float nectar = 100f;public static void CollectNectar(float amount){if (amount > 0) nectar += amount;}public static void ConvertNectarToHoney(float amount){float nectarToHoney = amount;if (nectarToHoney > nectar) nectarToHoney = nectar;nectar -= nectarToHoney;honey += nectarToHoney * NECTAR_CONVERSION_RATIO;}public static bool ConsumeHoney(float amount){if (honey >= amount){honey -= amount;return true;}else{return false;}}public static string StatusReport{get{string status = $"{honey:0.0} units of honey\n" +$"{nectar:0.0} units of nectar";string warnings = "";if (honey < LOW_LEVEL_WARNING) warnings +="\nLOW HONEY - ADD A HONEY MANUFACTURER";if (nectar < LOW_LEVEL_WARNING) warnings +="\nLOW NECTAR - ADD A NECTAR COLLECTOR";return status + warnings;}}}
}

Bee为基类,我们希望它不被创建,所以使用abstract 创建


namespace BeehiveManagementSystem
{abstract class Bee{public abstract float CostPerShift { get; }public string Job { get; private set; }public Bee(string job){Job = job;}public void WorkTheNextShift(){if (HoneyVault.ConsumeHoney(CostPerShift)){DoJob();}}protected abstract void DoJob();}
}

机制-动态-美感框架(MDA)是一个用来理解游戏很好的工具
整个应用在一个反馈循环中

至此,我们就学习完了第六章,然后让我们复习一下本章讲了什么

  • 如何使用继承
  • 子类继承基类的方法和特性
  • 抽象类
  • 游戏设计方法(MDA)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com