博客
关于我
夜光带你走进C#语言 基础版本(50)
阅读量:290 次
发布时间:2019-03-01

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

夜光双眸间,一个年轻人低声自语道:“所学到的任何有价值的知识,往往来自于自学。天才并非与生俱来,而是终身学习的结果。不知道而假装知道才是真正可怕的。”

在技术领域,虚方法和隐藏方法是面对对象类型问题时常用的手法。它们的区别在于调用方式及结果,这一点至关重要。

以下是通过代码示例说明两者的区别:

using System;namespace GeniusTest01{    class Enemy    {        public void Move()         {             Console.WriteLine("调用了Enemy的Move方法");         }        public virtual void Attack()         {             Console.WriteLine("敌人攻击");         }    }    class Boss : Enemy    {        public override void Attack()         {             Console.WriteLine("BOSS攻击");         }        public new void Move()         {             Console.WriteLine("BOSS移动");         }    }    public class Class86    {        static void Main(string[] args)        {            // 隐藏方法的调用演示            Boss oneEnemy = new Boss();            oneEnemy.Move(); // 使用子类类型声明调用,执行子类的Move方法            Enemy twoEnemy = new Boss();            twoEnemy.Move(); // 使用父类类型声明调用,执行父类的Move方法            // 虚方法的调用演示            Enemy threeEnemy = new Enemy();            threeEnemy.Attack(); // 使用父类实例化,调用虚方法的父类实现            Enemy fourEnemy = new Boss();            fourEnemy.Attack(); // 使用子类实例化,调用虚方法的子类实现        }    }}

通过上述代码可以看出:

  • 隐藏方法的调用:使用子类类型声明时,会调用子类的方法;
  • 虚方法的调用:使用子类实例时,会调用子类的方法;使用父类实例时,会调用父类的方法。
  • 这种理解对于代码的维护和扩展至关重要。在实际开发中,明确调用目标是保证代码的稳定性和可维护性。

    转载地址:http://wxdo.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现Length conversion长度转换算法(附完整源码)
    查看>>
    Objective-C实现Levenshtein 距离算法(附完整源码)
    查看>>
    Objective-C实现levenshteinDistance字符串编辑距离算法(附完整源码)
    查看>>
    Objective-C实现lfu cache缓存算法(附完整源码)
    查看>>
    Objective-C实现LFU缓存算法(附完整源码)
    查看>>
    Objective-C实现linear algebra线性代数算法(附完整源码)
    查看>>
    Objective-C实现linear congruential generator线性同余发生器算法(附完整源码)
    查看>>
    Objective-C实现linear discriminant analysis线性判别分析算法(附完整源码)
    查看>>