本文共 1471 字,大约阅读时间需要 4 分钟。

虚方法的调用:调用上,使用子类构造的对象调用虚方法,就会调用子类的方法,使用父类构造的对象,就会调用父类的方法。
隐藏方法的调用:调用上, 使用子类类型的声明调用隐藏方法,就会调用到子类的方法。若想调用被隐藏的方法,需要用父类类型的声明来调用。
调用不同的举例:

using System;namespace GeniusTest01{    class Enemy    {        // 夜光:hashak        public void Move() {            Console.WriteLine("调用了 enemy的move方法");        }        public virtual void Attack() {            Console.WriteLine("enemy attac");        }    }    class Boss : Enemy    {        public override void Attack() {            Console.WriteLine("Boss Attac");        }        public new void Move() {            Console.WriteLine("Boss move");        }    }    public class Class86    {        static void Main(string[] args)        {            //---- 隐藏方法的调用----begin            Boss oneEnemy = new Boss();            oneEnemy.Move(); // 调用的是隐藏方法, 用子类的声明来调用的,调用的就是子类的Move。            Enemy twoEnemy = new Boss();            twoEnemy.Move(); // 调用的隐藏方法, 用父类的声明来调用的,调用的就是父类的Move方法。            //-----------------------end            //-----虚方法的调用----- begin            //用什么类型 来构造,在调用方法的时候就会调用什么类型的方法。            Enemy threeEnemy = new Enemy();            threeEnemy.Attack(); // 调用虚方法,用父类来实例化的,所以调用的是父类的Attac方法。            Enemy fourEnemy = new Boss();            fourEnemy.Attack();  // 调用虚方法,用子类来实例化的,所以调用的就是子类(Boss)的Attac方法。            //-----虚方法的调用------end            Console.ReadKey();        }    }}   
转载地址:http://wxdo.baihongyu.com/