使用 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. 动态多态性

相关推荐

  1. 使用 C# 学习面向对象编程 3 部分

    2024-06-18 19:40:04       27 阅读
  2. C# 面向对象编程(一)——类 三篇

    2024-06-18 19:40:04       34 阅读
  3. C++面对对象编程

    2024-06-18 19:40:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-18 19:40:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-18 19:40:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-18 19:40:04       82 阅读
  4. Python语言-面向对象

    2024-06-18 19:40:04       91 阅读

热门阅读

  1. 平庸的学术工作者

    2024-06-18 19:40:04       31 阅读
  2. MySQL中为什么要有隐式内连接和显式内连接

    2024-06-18 19:40:04       29 阅读
  3. 待学习记录清单

    2024-06-18 19:40:04       34 阅读
  4. 小程序-生命周期(2) 应用周期/页面周期

    2024-06-18 19:40:04       32 阅读
  5. 航拍无人机像素坐标转世界坐标

    2024-06-18 19:40:04       30 阅读
  6. Spring (64)Spring框架如何处理异常

    2024-06-18 19:40:04       27 阅读
  7. 【名词解释】Unity3D中的“刚体移动”

    2024-06-18 19:40:04       35 阅读
  8. 树莓派和STM32的区别

    2024-06-18 19:40:04       30 阅读
  9. Redis 面试热点(二)

    2024-06-18 19:40:04       30 阅读
  10. 硬核科技集体暴涨,港股跟随美股步伐

    2024-06-18 19:40:04       33 阅读
  11. vue3-自定义指令来实现input框输入限制

    2024-06-18 19:40:04       32 阅读
  12. while和until语句

    2024-06-18 19:40:04       28 阅读
  13. PAT B1012. 数字分类

    2024-06-18 19:40:04       32 阅读
  14. Leetcode热题100

    2024-06-18 19:40:04       25 阅读