C# 虚方法(virtual)案例详解

简介: C# 虚方法(virtual)案例详解

文章目录


虚方法

虚方法的定义

重写虚方法,返回值类型相同,实现结果(返回值)不同

定义在类中的函数需要在继承类中实现时,可以使用虚方法,虚方法是使用关键字virtual声明的,虚方法可以在不同的继承类中有不同的实现,即为基类中定义的允许在派生类中重写的方法;

虚方法的创建

访问修饰符 virtual 函数返回类型 函数名(参数表) {函数体};

案例

    //虚方法
        public virtual int Add(int a,int b)
        {
            return a + b;
        }

虚方法的调用

基类中声明的虚方法一般在派生类中对其进行调用,会运用到base关键字

class VirtualMethodChild : VirtualMethod
    {
        //继承父类  override重写父类虚方法
        public override int Add(int a, int b)
        {
            //base关键字 调用父类方法
            //return base.Add(a, b);   
            return a * b;
        }
    }

Program 类

public class Program
    {
        public static void Main(string[] args)
        {
            VirtualMethod a = new VirtualMethod();
            int num = a.Add(2, 3);
            Console.WriteLine(num);
            VirtualMethodChild b = new VirtualMethodChild();
            int num2 = b.Add(2, 3);
            Console.WriteLine(num2);
            Console.ReadLine();
        }
    }

虚方法好处

  1. 当在基类中进行虚方法的定义以后,在派生类中可以对其方法进行调用,而且可以通过重写来改变其中实现的功能来实现自己的一些功能
  2. 不是虚方法时,必须重新声明方法然后再进行自己想要的功能进行编写然后再进行调用

虚方法作用

  1. 允许子类/派生类 进行重写
  2. 增加代码的可维护性,脉络较清淅有条理
目录
相关文章
C#的基本语法结构学习案例详解
C#的基本语法结构学习案例详解
61 0
|
3月前
|
数据采集 存储 C#
C# 爬虫技术:京东视频内容抓取的实战案例分析
C# 爬虫技术:京东视频内容抓取的实战案例分析
|
3月前
|
C# 索引
C#中的virtual和override关键字
C#中的virtual和override关键字
45 3
|
6月前
|
C#
C#的类和对象的概念学习案例刨析
【5月更文挑战第17天】C#是一种面向对象的语言,以类和对象为核心。类作为对象的模板,定义了属性(如Name, Age)和行为(如Greet)。对象是类的实例,可设置属性值。封装通过访问修饰符隐藏实现细节,如Customer类的私有name字段通过Name属性访问。继承允许新类(如Employee)从现有类(Person)继承并扩展。多态让不同对象(如Circle, Square)共享相同接口(Shape),实现抽象方法Area,提供灵活的代码设计。
65 1
|
6月前
|
安全 算法 测试技术
C#编程实战:项目案例分析
【4月更文挑战第20天】本文以电子商务系统为例,探讨C#在实际项目中的应用。通过面向对象编程实现组件抽象和封装,确保代码的可维护性和可扩展性;利用安全性特性保护用户数据;借助数据库操作处理商品信息;通过逻辑控制和算法处理订单;调试工具加速问题解决,展现C#的优势:面向对象、数据库交互、数据安全和开发效率。C#在实际编程中展现出广泛前景。
306 2
|
6月前
|
存储 C#
C#中的序列化和反序列化案例
C#中的序列化和反序列化案例
|
6月前
|
C# 索引
C#学习相关系列之abstract和virtual用法
C#学习相关系列之abstract和virtual用法
C#学习virtual(虚拟的)和abstract(抽象的)的区别
C#学习virtual(虚拟的)和abstract(抽象的)的区别
115 0
|
6月前
|
C#
halcon联合c#、WPF学习笔记二(简单案例)
halcon联合c#、WPF学习笔记二(简单案例)
394 0
C#的类和对象的概念学习案例详解
C#的类和对象的概念学习案例详解
71 2