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. 增加代码的可维护性,脉络较清淅有条理
目录
相关文章
|
5月前
|
C#
C#的基本语法结构学习案例详解
C#的基本语法结构学习案例详解
27 0
|
1月前
|
存储 C#
C#中的序列化和反序列化案例
C#中的序列化和反序列化案例
12 0
|
3月前
|
C#
halcon联合c#、WPF学习笔记二(简单案例)
halcon联合c#、WPF学习笔记二(简单案例)
106 0
|
4月前
|
SQL 关系型数据库 MySQL
C#程序设计案例开发教程
C#程序设计案例开发教程
48 0
|
4月前
|
数据采集 JSON JavaScript
C# 解析“JSON“格式数据和网络实战案例 入门
C# 解析“JSON“格式数据和网络实战案例 入门
|
4月前
|
存储 编译器 C#
C# 变量数据类型的使用和案例(基础篇)
C# 变量数据类型的使用和案例(基础篇)
|
C#
C# 接口案例
C# 接口案例
81 4
|
C#
C# 基础一 抽象方法 抽象类声明及使用(源码案例)
C# 基础一 抽象方法 抽象类声明及使用(源码案例)
95 10
|
C#
C#经典案例实现(求单词在句子出现的次数,字符串倒序输出,用泛型实现两数交换等)
(求单词在句子出现的次数,字符串倒序输出,用泛型实现两数交换等)
111 1
|
Web App开发 JavaScript 前端开发
C# 异步上传图片案例
好久没写博客了,都感觉自己快堕落了!今天随性写一篇关于异步上传图片的程序及插件! 说是程序及插件,其实程序占大头,所谓的插件只是两个JS。分别为:jquery.html5upload.js 和 jquery.
1387 0