iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#多态性是什么
  • 189
分享到

C#多态性是什么

2023-06-17 23:06:20 189人浏览 薄情痞子
摘要

这篇文章主要介绍“C#多态性是什么”,在日常操作中,相信很多人在C#多态性是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!多态是面向对象编

这篇文章主要介绍“C#多态性是什么”,在日常操作中,相信很多人在C#多态性是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

多态是面向对象编程中三大机制之一,其原理建立在"从父类继承而来的子类可以转换为其父类"这个规则之上,换句话说,能用父类的地方,就能用该类的子类.当从父类派生了很多子类时,由于每个子类都有其不同的代码实现,所以当用父类来引用这些子类时,同样的操作而可以表现出不同的操作结果,这就是所谓的多态.

了解什么是C#多态性

如何定义一个虚方法

如何重载一个虚方法

如何在程序中运用多态性

面向对象程序设计中的另外一个重要概念是C#多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以把这些派生类,都放到一个数组中。 如果这些对象都有同名方法,就可以调用每个对象的同名方法。本节课将向你介绍如何完成这些事情。

清单9-1. 带有虚方法的基类:DrawinGobject.cs

using System;  public class DrawingObject  {      public virtual void Draw()      {          Console.WriteLine("I'm just a generic drawing object.");      }  }

说明

清单9-1 定义了DrawingObject类。这是个可以让其他对象继承的基类。该类有一个名为Draw()的方法。Draw()方法带有一个virtual修饰符,该修饰符表明:该基类的派生类可以重载该方法。DrawingObject类的 Draw()方法完成如下事情:输出语句"I'm just a generic drawing object."到控制台。

清单9-2. 带有重载方法的派生类:Line.cs, Circle.cs, and Square.cs

using System;  public class Line : DrawingObject  {      public override void Draw()      {          Console.WriteLine("I'm a Line.");      }  }   public class Circle : DrawingObject  {      public override void Draw()      {          Console.WriteLine("I'm a Circle.");      }  }   public class Square : DrawingObject  {      public override void Draw()      {          Console.WriteLine("I'm a Square.");      }  }

说明

清单9-2定义了三个类。这三个类都派生自DrawingObject类。每个类都有一个同名Draw()方法,这些Draw()方法中的每一个都有一个重载修饰符。重载修饰符可让该方法在运行时重载其基类的虚方法,实现这个功能的条件是:通过基类类型的指针变量来引用该类。

清单9-3. 实现C# 多态性的程序:DrawDemo.cs

using System;  public class DrawDemo  {      public static int Main(string[] args)      {          DrawingObject[] dObj = new DrawingObject[4];          dObj[0] = new Line();          dObj[1] = new Circle();          dObj[2] = new Square();          dObj[3] = new DrawingObject();          foreach (DrawingObject drawObj in dObj)          {              drawObj.Draw();          }          return 0;      }  }

说明

清单9-3演示了多态性的实现,该程序使用了在清单 9-1 和清单9-2中定义的类。在DrawDemo类中的Main()方法中,创建了一个数组, 数组元素是DrawingObject 类的对象。该数组名为dObj,是由四个DrawingObject类型的对象组成。

接下来, 初始化dObj数组, 由于Line, Circle和Square类都是DrawingObject类的派生类,所以这些类可以作为dObj数组元素的类型。 如果C#没有这种功能,你得为每个类创建一个数组。继承的性质可以让派生对象当作基类成员一样用,这样就节省了编程工作量。

一旦数组初始化之后,接着是执行foreach循环,寻找数组中的每个元素。在每次循环中, dObj 数组的每个元素(对象)调用其Draw()方法。多态性体现在:在运行时,各自调用每个对象的Draw()方法。尽管dObj 数组中的引用对象类型是DrawingObject,这并不影响派生类重载DrawingObject 类的虚方法Draw()。 在dObj 数组中,通过指向DrawingObject 基类的指针来调用派生类中的重载的Draw()方法。

输出结果是:

I'm a Line.

I'm a Circle.

I'm a Square.

I'm just a generic drawing object.

在DrawDemo 程序中,调用了每个派生类的重载的Draw()方法。 ***一行中,执行的是DrawingObject类的虚方法Draw()。这是因为运行到***,数组的第四个元素是DrawingObject类的对象。

到此,关于“C#多态性是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C#多态性是什么

本文链接: https://www.lsjlt.com/news/294052.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#多态性是什么
    这篇文章主要介绍“C#多态性是什么”,在日常操作中,相信很多人在C#多态性是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!多态是面向对象编...
    99+
    2023-06-17
  • C#多态性指的是什么
    这篇文章主要介绍“C#多态性指的是什么”,在日常操作中,相信很多人在C#多态性指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性指的是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!C#...
    99+
    2023-06-17
  • C#多态性的特点是什么
    这篇文章主要介绍“C#多态性的特点是什么”,在日常操作中,相信很多人在C#多态性的特点是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性的特点是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • C#多态是什么意思
    本篇内容介绍了“C#多态是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、什么是C#多态?面向对象程序设计中的另外一个重要概念是多...
    99+
    2023-06-17
  • PHP中多态性是什么意思
    在PHP中,多态性是指同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果;不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的...
    99+
    2023-05-14
    php
  • PHP中多态性指的是什么
    本文小编为大家详细介绍“PHP中多态性指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP中多态性指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在PHP中,多态性是指同一个操作作用于不同的类...
    99+
    2023-07-05
  • C#多态性怎么理解
    这篇文章主要讲解了“C#多态性怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#多态性怎么理解”吧!C#多态性的内涵实际就是通过继承,一个类可以用作多种类型:可以用作它自己的类型、任...
    99+
    2023-06-17
  • 什么是多态?
    文章目录 一、多态是什么?二、多态的必要条件2.1 初始多态2.2 多态的优缺点2.3 重写 三、转型3.1 向上转型3.2 向下转型3.3 避免在构造方法中调用重写方法. 一、...
    99+
    2023-09-15
    java 开发语言 jvm
  • c#多态的核心本质是什么
    C#中的多态性的核心本质是允许不同的对象以不同的方式响应相同的消息或方法调用。这意味着通过基类或接口定义的方法可以被派生类或实现类重...
    99+
    2024-03-05
    c#
  • C++的多态与虚函数是什么
    这篇文章主要介绍“C++的多态与虚函数是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++的多态与虚函数是什么”文章能帮助大家解决问题。多态性多态性是面向对象程序设计的关键技术之一,若程序设计...
    99+
    2023-06-29
  • C#中怎么实现多态性
    在C#中实现多态性一般通过继承和接口实现。具体方法如下: 继承:通过创建一个父类和多个子类,子类继承父类的特性,并且可以重写父类的...
    99+
    2024-03-06
    C#
  • Java中封装、继承、多态特性是什么
    这篇文章主要为大家展示了“Java中封装、继承、多态特性是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中封装、继承、多态特性是什么”这篇文章吧。1.封装什么是封装,谈谈自己对封装的...
    99+
    2023-06-22
  • 多态与多态性
    1. 什么是多态     多态指的是同一种/类事物的不同形态 2.为何要用多态性   1 增加了程序的灵活性   2 增加了程序的可扩张性 多态性:分为静态多态性和动态多态性     多态性:在多态的背景下,可以在不用考虑对象具体类型的前...
    99+
    2023-01-30
    多态性 多态
  • Java多态性是怎么实现的
    本篇内容主要讲解“Java多态性是怎么实现的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多态性是怎么实现的”吧!多态性是通过:1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的2...
    99+
    2023-06-17
  • 什么是C#静态方法
    本篇内容介绍了“什么是C#静态方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#静态方法是什么呢?在我们编程开发的应用中C#静态方法可以...
    99+
    2023-06-17
  • C++ 函数继承详解:多态的本质是什么?
    函数继承概述:c++++中函数继承通过override关键字实现,允许子类覆盖父类函数,使多态成为可能,即对象在运行时表现出不同的行为,即使属于同一父类。 C++ 函数继承详解:多态的...
    99+
    2024-05-04
    多态 c++ 函数继承 c++
  • 【C++】多态
    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘。 🛸C++专栏:C++内功...
    99+
    2023-08-17
    c++ 开发语言
  • java多态的优势是什么
    今天就跟大家聊聊有关java多态的优势是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、好处(1)类调用者对类的使用成本进一步降低。封装是让类的调用者不需要知道类的实现细节。多...
    99+
    2023-06-15
  • java多态的概念是什么
    Java多态的概念是指子类对象可以以父类的类型进行引用和操作。多态性是面向对象编程的重要特性之一,它允许一个变量引用不同类型的对象,...
    99+
    2023-09-22
    java
  • java多态的作用是什么
    Java中的多态性是面向对象编程的一种重要特性,其作用如下:1. 提高代码的灵活性和可复用性:通过多态性,可以将不同类的对象视为同一...
    99+
    2023-08-23
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作