欢迎光临
我的个人博客网站

C#(八)基础篇—继承和多态


C#

本随笔为个人复习巩固知识用,多从书上总结与理解归纳得来,如有错误烦请指正

 

面向对象的三大基本特征:封装、继承、多态

封装在前面说过了

 继承:继承是指一个类可以继承另一个类(成为父类)的全部成员变量和方法,并进行扩展,重写父类的方法,或添加新的成员方法和变量。

多态:多态是指将子类转为父类不需要显示的类型转换,被转为父类的对象仍然可以执行真正子类的重载方法。

所有C#类都是从System.Object派生出来的。

namespace ConsoleApp1 {     //定义一个Enemy的基类     public class Enemy     {         //构造函数         public Enemy()         {             Console.WriteLine("enemy construtor");          }          //virtual表示该方法为虚方法,可以被子类重写         public virtual void UpdateAI()         {             Console.WriteLine("update enemy ai");         }        }      //派生类Boss继承自基类Enemy     public class Boss : Enemy     {         //构造函数         public Boss()         {             Console.WriteLine("boss constructor");         }          //使用override关键词重写虚方法         //当子类被转为父类时,重写的虚方法依然能正确执行         public override void UpdateAI()         {             Console.WriteLine("update boss ai");         }        }           class Program     {         static void Main(string[] args)         {              Enemy[] enemies = new Enemy[2];//创建数组,包括两个Enemy基类             enemies[0] = new Enemy();//创建一个Enemy,执行Enemy的构造函数             enemies[1] = new Boss();//创建一个Boss,先执行Enemy的构造函数,再执行Boss的构造函数               for(int i = 0; i < 2; i++)             {                 //enemies[0]的类型是Enemy,会调用Enemy类的UpdateAI                 //enemies[1]的类型是Enemy,但它实际上是Boss                 //多态的原因,enemies[1]任然会调用Boss类的UpdateAI                  enemies[i].UpdateAI();             }              Console.ReadKey();           }     } }

C#(八)基础篇—继承和多态

 

赞(0) 打赏
未经允许不得转载:张拓的天空 » C#(八)基础篇—继承和多态
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏