C# の継承とポリモーフィズムとプログラム例
C# における継承とは何ですか?
継承 は C# の重要な概念です。 継承は、親クラスと子クラスを定義する概念です。 子クラスは親クラスのメソッドとプロパティを継承しますが、同時に、必要に応じてメソッドの動作を変更することもできます。 子クラスは、必要に応じて独自のメソッドを定義することもできます。
プログラム例によって C# の継承をより深く理解しましょう。
C# 継承の例
次に、継承の概念をコードに組み込む方法を見てみましょう。
ステップ1) 最初のステップは、Tutorial クラスのコードを変更することです。 このステップでは、以下のコードを Tutorial.cs ファイルに追加します。
ここで、「protected」というアクセス修飾子を TutorialID フィールドと TutorialName フィールドの両方に追加する必要があることに注意してください。
このアクセス修飾子については、アクセス修飾子のチュートリアルで説明したことを思い出してください。 さて、ここでこれを持っている目的がわかります。 このアクセス修飾子 (保護) がある場合にのみ、子クラスは親クラスのフィールドを使用できます。
ステップ2) 99 番目のステップは、新しい子クラスを追加することです。 このクラスの名前は「GuruXNUMXTutorial」となります。 このステップでは、以下のコードを Tutorial.cs ファイルに追加します。 コードはチュートリアル クラス定義の後に配置する必要があります。
コードの説明:-
- 最初のステップは、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# におけるポリモーフィズムとは何ですか?
ポリモーフィズム C# では、1 つの名前に複数の形式を持たせることができる OOP の概念です。たとえば、通信用のスマートフォンがあるとします。選択する通信モードは何でもかまいません。通話、テキスト メッセージ、画像メッセージ、メールなどです。つまり、目標は共通、つまり通信ですが、アプローチは異なります。これをポリモーフィズムと呼びます。
以下のプログラム例によって、C# ポリモーフィズムをよりよく理解できるようになります。
C# ポリモーフィズムの例
ポリモーフィズムの概念をコードに組み込む方法を見てみましょう。
ステップ1) 最初のステップは、Tutorial クラスのコードを変更することです。 このステップでは、以下のコードを Tutorial.cs ファイルに追加します。
コードの説明:-
1 と 2) 最初のステップは前の例と同じです。 SetTutorial メソッドの定義はそのままにしておきます。
3) このメソッドは、パラメータ pID と pName に基づいて TutorialID と TutorialName を設定します。
4) ここでクラスに変更を加え、SetTutorial という同じ名前の新しいメソッドを追加します。 今回のみ、pName という XNUMX つのパラメーターのみを渡します。 このメソッドでは、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 の両方をこのメソッドに渡しています。
- XNUMX 番目のステップでは、パラメータを XNUMX つだけ指定して SetTutorial メソッドを呼び出しています。 このメソッドに TutorialName を渡しているだけです。
上記のコードが正しく入力され、プログラムが実行されると、次の出力が表示されます。チュートリアル名とともにチュートリアルIDも取得したい場合は、以下の手順に従ってください。
- public int GetTutorialID という別のメソッドを作成します。
- そのメソッドに「return TutorialID」というコード行を記述します。 これを使用して、TutorialID を呼び出し側プログラムに返すことができます。
出力:
出力から、両方のメソッドが正常に呼び出されたことが明確にわかります。 このため、「First Tutorial」と「Second Tutorial」という文字列がコンソールに送信されました。
製品概要
- 継承とは、子クラスが親クラスのフィールドとメソッドを継承することです。 子クラスは独自のメソッドを定義することもできます。
- ポリモーフィズム C# は、XNUMX つの名前がさまざまな形式を持つことができる OOP の概念です。







