例を含む C# 抽象クラスのチュートリアル: 抽象化とは何ですか?
C#の抽象クラスとは?
抽象クラス インスタンス化することはできず、abstract キーワードでマークされます。 抽象クラスには、XNUMX 個以上の抽象メソッドが含まれます。 抽象クラスは基本クラスとして機能し、そのメソッドを実装またはオーバーライドするサブクラスによって継承されるように設計されています。
以下の例で C# の抽象クラスを学習しましょう。 以下は「Animal」というクラスの定義です。 「Animal」クラスが定義されている場合、それが犬であるか猫であるかにかかわらず、その動物については何もわかりません。 description と呼ばれるメソッドは、クラスに対して定義された単なる汎用メソッドです。
動物が何になるかがわかったら、基本クラスを継承する別のクラスを作成します。動物が実際には犬であることがわかったら、メインの基本クラスを継承するDogクラスを作成します。ここでの主な違いは、Dogクラスは動物の定義を変更できないことです。 DescriptAnimalクラスのメソッド。Dogという独自のC#抽象メソッドを定義する必要があります。Description。これが C# 抽象クラスの基本的な概念です。
C# で抽象クラスを作成する
コードを変更して C# 抽象クラスを含める方法をリアルタイムの例とともに見てみましょう。 C# 抽象化クラスを使用して実行できるものは何もないため、コードは実行されないことに注意してください。
ステップ1) 最初のステップとして、抽象クラスを作成しましょう。 このクラスは Tutorial という名前になり、メソッドが XNUMX つだけ含まれます。 すべてのコードは Program.cs ファイルに記述する必要があります。
コードの説明:-
- まず抽象クラスを定義します。 抽象キーワードの使用に注意してください。 これは、クラスが抽象クラスであることを示すために使用されます。
- 次に、何も行わないメソッドを定義します。 メソッドには virtual というキーワードが必要です。 これは、子クラスによってメソッドを変更できないことを意味します。 これは、あらゆる抽象クラスの基本要件です。
ステップ2) 次に、子クラスを追加しましょう。 このコードは Program.cs ファイルに追加されます。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { abstract class Tutorial { public virtual void Set() { } } class Guru99Tutorial:Tutorial { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor=new Guru99Tutorial(); pTutor.SetTutorial(1,".Net"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
このコードには何も例外はありません。 抽象 Tutorial クラスを継承する「Guru99Tutorial」というクラスを定義するだけです。 次に、以前から使用しているのと同じメソッドを定義します。
ご注意:
ここでは、Tutorial クラスで定義された Set メソッドの定義を変更することはできません。 Tutorial クラスでは、「Set」(public virtual void Set()) というメソッドを定義しました。 このメソッドは抽象クラス C# の一部であるため、Guru99Tutorial クラスで Set メソッドを再度定義することはできません。
まとめ
の抽象クラス Cシャープ 他のクラスの設計図であり、 abstract
キーワード。直接インスタンス化することはできず、派生クラスが実装する必要がある抽象メソッドを含む場合があります。抽象クラスは、特定の機能を許可しながら、サブクラス間で一貫した構造を強制します。この概念は、基本動作を定義し、継承を通じてコードの柔軟性を確保するためによく使用されます。