本文共 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/