zoukankan      html  css  js  c++  java
  • 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();
    
    
            }
        }
    }

  • 相关阅读:
    数据变换
    离群点的检验
    数据清洗
    数据采样
    FM与FFM
    EM算法与高斯混合模型
    最大熵模型
    PageRank
    软件技术基础
    原来炫酷的可视化地图,用Python就能搞定!
  • 原文地址:https://www.cnblogs.com/zzuadj/p/14102792.html
Copyright © 2011-2022 走看看