工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C# の継承とポリモーフィズムとプログラムの例

C# の継承とは

継承 は C# の重要な概念です。継承は、親クラスと子クラスを定義する概念です。子クラスは親クラスのメソッドとプロパティを継承しますが、同時に、必要に応じてメソッドの動作を変更することもできます。子クラスは、必要に応じて独自のメソッドを定義することもできます。

この C# チュートリアルでは、次のことを学びます-

プログラムの例で C# の継承について理解を深めましょう:

C# 継承の例

コードに継承の概念を組み込む方法を見てみましょう。

ステップ 1) 最初のステップは、Tutorial クラスのコードを変更することです。このステップでは、以下のコードを Tutorial.cs ファイルに追加します。

ここで、'protected' のアクセス修飾子を TutorialID フィールドと TutorialName フィールドの両方に追加する必要があることに注意してください。

このアクセス修飾子については、アクセス修飾子のチュートリアルで説明したことを思い出してください。ここで、これを持つ目的を見ることができます。このアクセス修飾子 (保護) がある場合にのみ、子クラスは親クラスのフィールドを使用できます。

ステップ 2) 2 番目のステップは、新しい子クラスを追加することです。このクラスの名前は「Guru99Tutorial」になります。この手順では、次のコードを Tutorial.cs ファイルに追加します。このコードは、Tutorial クラス定義の後に配置する必要があります。

コードの説明:-

<オール>
  • 最初のステップは、Guru99Tutorial 子クラスを作成することです。また、このクラスが Tutorial クラスの子クラスになることにも言及する必要があります。これは「:」キーワードによって行われます。
  • 次に、RenameTutorial というメソッドを定義しています。これは、TutorialName フィールドの名前を変更するために使用されます。このメソッドは、チュートリアルの新しい名前を含む文字列変数を受け入れます。
  • 次に、パラメーター 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(); 
      }
     }
    }

    コードの説明:-

    <オール>
  • 最初のステップは、Guru99Tutorial クラスのオブジェクトを作成することです。これは、「new」キーワードを介して行われます。今回は Tutorial クラスのオブジェクトを作成していないことに注意してください。
  • Guru99Tutorial クラスの RenameTutorial メソッドを使用して、TutorialName フィールドを変更します。文字列「.Net by Guru99」を RenameTutorial メソッドに渡します。
  • 次に、GetTutorial メソッドを呼び出します。このメソッドは Guru99Tutorial クラスで定義されていませんが、このメソッドにアクセスできることに注意してください。 GetTutorial メソッドの出力は、Console.WriteLine メソッドを介してコンソールに表示されます。
  • 上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。

    出力:

    出力から、TutorialName フィールドの名前が「.Net by Guru99」に変更されたことがはっきりとわかります。これは、子クラスによって呼び出される RenameTutorial メソッドによって可能になりました。

    C# のポリモーフィズムとは

    ポリモーフィズム in C# は、1 つの名前が複数の形式を持つことができる OOP の概念です。たとえば、通信用のスマートフォンがあります。選択する通信モードは何でもかまいません。電話、テキストメッセージ、画像メッセージ、メールなどの場合があります。したがって、目標は共通です。つまり、コミュニケーションですが、アプローチは異なります。これはポリモーフィズムと呼ばれます。

    以下のプログラム例によって、C# ポリモーフィズムをよりよく理解できます:

    C# ポリモーフィズムの例

    ポリモーフィズムの概念をコードに組み込む方法を見てみましょう。

    ステップ 1) 最初のステップは、Tutorial クラスのコードを変更することです。このステップでは、以下のコードを Tutorial.cs ファイルに追加します。

    コードの説明:-

    1 &2) 最初のステップは、前の例と同じです。 SetTutorial メソッドの定義はそのままにしています。

    3) このメソッドは、パラメータ pID と pName に基づいて、TutorialID と TutorialName を設定します。

    4) ここでクラスを変更し、SetTutorial という同じ名前の新しいメソッドを追加します。今回のみ、pName という 1 つのパラメーターのみを渡します。このメソッドでは、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(); 
      }
     }
    }

    コードの説明:-

    <オール>
  • 最初のステップでは、2 つのパラメータを持つ SetTutorial メソッドを使用しています。このメソッドに TutorialID と TutorialName の両方を渡します。
  • 2 番目のステップでは、パラメータを 1 つだけ指定して SetTutorial メソッドを呼び出しています。このメソッドに TutorialName を渡すだけです。
  • 上記のコードを正しく入力してプログラムを実行すると、次の出力が表示されます。チュートリアル名と一緒にチュートリアル ID も取得したい場合は、以下の手順に従ってください

    <オール>
  • public int GetTutorialID という別のメソッドを作成します
  • そのメソッドに「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# - 継承