2020年12月9日星期三

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();  } }}

 









原文转载:http://www.shaoqun.com/a/497409.html

深诺互动:https://www.ikjzd.com/w/2746

新蛋:https://www.ikjzd.com/w/79

蜜芽宝贝:https://www.ikjzd.com/w/1320


继承与多态C#本随笔为个人复习巩固知识用,多从书上总结与理解归纳得来,如有错误烦请指正面向对象的三大基本特征:封装、继承、多态封装在前面说过了继承:继承是指一个类可以继承另一个类(成为父类)的全部成员变量和方法,并进行扩展,重写父类的方法,或添加新的成员方法和变量。多态:多态是指将子类转为父类不需要显示的类型转换,被转为父类的对象仍然可以执行真正子类的重载方法。所有C#类都是从System.Obj
transfer:transfer
沃尔玛:沃尔玛
平乐古镇门票多少钱,开放时间是什么时候?:平乐古镇门票多少钱,开放时间是什么时候?
手机安卓端如何翻啊墙?:手机安卓端如何翻啊墙?
深圳东门哪里有宠物店啊?:深圳东门哪里有宠物店啊?

没有评论:

发表评论