C# の継承とポリモーフィズムとプログラムの例
C# の継承とは
継承 は C# の重要な概念です。継承は、親クラスと子クラスを定義する概念です。子クラスは親クラスのメソッドとプロパティを継承しますが、同時に、必要に応じてメソッドの動作を変更することもできます。子クラスは、必要に応じて独自のメソッドを定義することもできます。
この C# チュートリアルでは、次のことを学びます-
- C# の継承とは
- C# 継承の例
- C# のポリモーフィズムとは
- C# ポリモーフィズムの例
プログラムの例で C# の継承について理解を深めましょう:
C# 継承の例
コードに継承の概念を組み込む方法を見てみましょう。
ステップ 1) 最初のステップは、Tutorial クラスのコードを変更することです。このステップでは、以下のコードを Tutorial.cs ファイルに追加します。
ここで、'protected' のアクセス修飾子を TutorialID フィールドと TutorialName フィールドの両方に追加する必要があることに注意してください。
このアクセス修飾子については、アクセス修飾子のチュートリアルで説明したことを思い出してください。ここで、これを持つ目的を見ることができます。このアクセス修飾子 (保護) がある場合にのみ、子クラスは親クラスのフィールドを使用できます。
ステップ 2) 2 番目のステップは、新しい子クラスを追加することです。このクラスの名前は「Guru99Tutorial」になります。この手順では、次のコードを Tutorial.cs ファイルに追加します。このコードは、Tutorial クラス定義の後に配置する必要があります。
コードの説明:-
<オール>注 :– 「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();
}
}
} コードの説明:-
<オール>上記のコードが正しく入力され、プログラムが正常に実行されると、次の出力が表示されます。
出力:
出力から、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();
}
}
} コードの説明:-
<オール>上記のコードを正しく入力してプログラムを実行すると、次の出力が表示されます。チュートリアル名と一緒にチュートリアル ID も取得したい場合は、以下の手順に従ってください
<オール>出力:
出力から、両方のメソッドが正常に呼び出されたことを明確に確認できます。このため、文字列「First Tutorial」と「Second Tutorial」がコンソールに送信されました。
まとめ
- 継承とは、子クラスが親クラスのフィールドとメソッドを継承することです。子クラスは独自のメソッドを定義することもできます。
- C# のポリモーフィズムは、1 つの名前に複数の形式を持たせることができる OOP の概念です。
C言語