亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C# 继承和多态与程序示例

什么是 C# 中的继承?

继承 是C#的一个重要概念。继承是一个定义父类和子类的概念。子类继承父类的方法和属性,但同时也可以根据需要修改方法的行为。如果需要,子类也可以定义自己的方法。

在本 C# 教程中,您将学习-

让我们通过一个程序示例来更好地理解 C# 的继承:

C# 继承示例

现在让我们看看如何在代码中加入继承的概念。

步骤 1) 第一步是更改我们的教程类的代码。在这一步中,我们将以下代码添加到 Tutorial.cs 文件中。

请注意,我们现在需要在 TutorialID 和 TutorialName 字段中添加访问修饰符“protected”。

请记住,我们在访问修饰符教程中提到了这个访问修饰符。那么在这里你可以看到这样做的目的。只有拥有了这个访问修饰符(protected),子类才能使用父类的字段。

步骤 2) 第二步是添加我们的新子类。该课程的名称将是“Guru99Tutorial”。在这一步中,我们将以下代码添加到 Tutorial.cs 文件中。代码应放在 Tutorial 类定义之后。

代码说明:-

  1. 第一步是创建 Guru99Tutorial 子类。我们还需要提到,这个类将成为 Tutorial 类的子类。这是通过“:”关键字完成的。
  2. 接下来,我们将定义一个名为 RenameTutorial 的方法。它将用于重命名 TutorialName 字段。此方法接受一个包含教程新名称的字符串变量。
  3. 然后我们将参数 pNewName 分配给 TutorialName 字段。
    注意 :– 即使我们没有在“Guru99Tutorial”类中定义TutorialName 字段,我们仍然可以访问该字段。这是因为“Guru99Tutorial”是Tutorial 类的子类。而且因为我们将 Tutorial 类的字段设置为受保护的,所以这些类可以访问它们。

步骤 3) 最后一步是修改我们的主 Program.cs 文件。在我们的控制台应用程序中,我们将创建一个 Guru99Tutorial 类的对象。有了这个对象,我们将调用 RenameTutorial 方法。然后我们将在 GetTutorial 方法的帮助下显示 TutorialName 字段。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 public class Tutorial
 {
  protected int TutorialID; 
  protected string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  
  public String GetTutorial()
  {
   return TutorialName;
  }
 }
  public class Guru99Tutorial:Tutorial
  {
   public void RenameTutorial(String pNewName)
   {
    TutorialName=pNewName;
   }
  
  static void Main(string[] args) 
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();
   
   pTutor.RenameTutorial(".Net by Guru99");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

代码说明:-

  1. 第一步是为 Guru99Tutorial 类创建一个对象。这是通过“新”关键字完成的。请注意,这次我们没有创建 Tutorial 类的对象。
  2. 我们使用 Guru99Tutorial 类的 RenameTutorial 方法来更改 TutorialName 字段。我们将字符串“.Net by Guru99”传递给 RenameTutorial 方法。
  3. 然后我们调用 GetTutorial 方法。请注意,即使 Guru99Tutorial 类中没有定义此方法,我们仍然可以访问此方法。 GetTutorial 方法的输出然后通过 Console.WriteLine 方法显示到控制台。

如果上述代码输入正确,程序执行成功,会显示如下输出。

输出:

从输出中,我们可以清楚地看到 TutorialName 字段被重命名为“.Net by Guru99”。这得益于子类调用的 RenameTutorial 方法。

什么是 C# 中的多态性?

多态性 在 C# 中是一个 OOP 概念,其中一个名称可以有多种形式。例如,您有一部用于通信的智能手机。您选择的通信模式可以是任何东西。可以是一个电话,一条短信,一条图片信息,邮件等等。所以,目标是共同的,也就是沟通,但是他们的做法是不同的。这叫做多态性。

通过以下程序示例,您将更好地了解 C# 多态性:

C# 多态示例

现在让我们看看,我们如何在代码中加入多态性的概念。

步骤 1) 第一步是更改我们的教程类的代码。在这一步中,我们将以下代码添加到 Tutorial.cs 文件中。

代码说明:-

1 &2) 第一步与我们之前的示例相同。我们保持 SetTutorial 方法的定义不变。

3) 该方法根据参数pID和pName设置TutorialID和TutorialName。

4) 这是我们对类进行更改的地方,我们添加了一个与 SetTutorial 同名的新方法。只是这次我们只传递了一个参数,即 pName。在这个方法中,我们只是将 TutorialName 的字段设置为 pName。

步骤 2) 最后一步是修改我们的主 Program.cs 文件。在我们的控制台应用程序中,我们将创建一个 Guru99Tutorial 类的对象。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public void SetTutorial(string pName) 
  {
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
   
   pTutor.SetTutorial(1,"First Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
   
   pTutor.SetTutorial("Second Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

代码说明:-

  1. 在第一步中,我们使用带有 2 个参数的 SetTutorial 方法。我们将 TutorialID 和 TutorialName 都传递给了这个方法。
  2. 在第二步中,我们现在只使用一个参数调用 SetTutorial 方法。我们只是将 TutorialName 传递给这个方法。

如果正确输入了上述代码并且程序运行,将显示以下输出。如果您还想获取 Tutorial ID 和 Tutorial Name ,您应该按照以下步骤操作

  1. 创建一个名为 public int GetTutorialID 的单独方法
  2. 在该方法中编写代码行“return TutorialID”。这可用于将 TutorialID 返回给调用程序。

输出:

从输出中,我们可以清楚地看到两个方法都被成功调用。因此,字符串“First Tutorial”和“Second Tutorial”被发送到控制台。

总结


C语言

  1. C# 表达式、语句和块(附示例)
  2. C# 类和对象
  3. C#抽象类和方法
  4. C# 部分类和部分方法
  5. C# 密封类和方法
  6. 带有程序示例的 C++ 函数
  7. 结构和类的区别:用 C++ 示例解释
  8. while 和 do-while 之间的区别:用例子解释
  9. Python 中的 type() 和 isinstance() 示例
  10. C# - 程序结构
  11. C# - 继承
  12. C# - 多态性