使用 C# 学习面向对象编程:第 7 部分

多态性

我们在程序中使用多态的频率是多少?多态是面向对象编程语言的第三大支柱,我们几乎每天都在使用它,却不去想它。

这是一个非常简单的图表,它将解释多态性本身。

简单来说,我们可以说,只要我们重载类的方法,就称为多态性。或者可以说,多态性通常表示为"一个接口,多个函数"。这意味着我们有多个具有相同名称但不同参数的函数。

例子

复制代码
using System;

namespace Polymorphism // 命名空间,用于组织代码
{
    class Program // 主程序类
    {
        class Car // 定义一个Car类
        {
            // CarDetail方法,无参数
            public void CarDetail()
            {
                // 输出一条信息:丰田车可用
                Console.WriteLine("Car Toyota is available");
            }

            // CarDetail方法,带一个int类型的参数
            public void CarDetail(int priceRange)
            {
                // 输出一条信息:兰博基尼车可用,它是一辆昂贵的车
                Console.WriteLine("Car lamborghini is available its expensive car");
            }

            // CarDetail方法,带两个参数:一个int类型和一个string类型
            public void CarDetail(int priceRange, string colour)
            {
                // 输出一条信息:奔驰车可用,白色
                Console.WriteLine("Car mercedes is available in white color");
            }
        }

        // 主程序入口点
        static void Main(string[] args)
        {
            // 创建Car类的实例cr
            Car cr = new Car();
            // 调用无参数的CarDetail方法
            cr.CarDetail();
            // 调用带一个int参数的CarDetail方法
            cr.CarDetail(2200000);
            // 调用带两个参数的CarDetail方法
            cr.CarDetail(2200000, "White");
            // 等待用户按下任意键,以防程序立即退出
            Console.ReadKey();
        }
    }
}

在此示例中,我们创建了三个具有相同名称(CarDetail)的不同函数,但这些函数具有不同的参数集。在下一个主题中,我将更详细地讨论多态性及其两种类型。

  1. 静态多态性
  2. 动态多态性
相关推荐
无巧不成书02183 天前
Java面向对象零基础实战:从Employee类吃透自定义类核心,掌握封装精髓
java·开发语言·java入门·面向对象·自定义类·employee类·java核心技术
FreakStudio6 天前
ESP32居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现
python·单片机·嵌入式·面向对象·并行计算·电子diy
BestOrNothing_20157 天前
从C++结构体、类到 PID 控制器:运动控制初学者如何理解 C++ 工程代码
c++·面向对象·pid·运动控制·.h与.cpp·struct与class
FreakStudio8 天前
lvgl-micropython、lv_micropython和lv_binding_micropython到底啥关系?一文读懂
python·单片机·嵌入式·面向对象·电子diy
FreakStudio9 天前
0 元学嵌入式 GUI!保姆级 LVGL+MicroPython 教程开更,从理论到实战全搞定
python·单片机·嵌入式·面向对象·电子diy
m0_4886333210 天前
C++与C语言的区别和联系,及其在不同领域的应用分析
c语言·c++·面向对象·嵌入式系统·系统软件
钢琴上的汽车软件18 天前
用 C 语言实现面向对象:pThis 模式技术解析
c语言·面向对象
小曹要微笑23 天前
C#中什么是类
开发语言·c#·面向对象·
yxc_inspire2 个月前
Java学习第二天
java·面向对象
明洞日记2 个月前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计