例を含む C# 抽象クラスのチュートリアル: 抽象化とは何ですか?

C#の抽象クラスとは?

抽象クラス インスタンス化することはできず、abstract キーワードでマークされます。 抽象クラスには、XNUMX 個以上の抽象メソッドが含まれます。 抽象クラスは基本クラスとして機能し、そのメソッドを実装またはオーバーライドするサブクラスによって継承されるように設計されています。

以下の例で C# の抽象クラスを学習しましょう。 以下は「Animal」というクラスの定義です。 「Animal」クラスが定義されている場合、それが犬であるか猫であるかにかかわらず、その動物については何もわかりません。 description と呼ばれるメソッドは、クラスに対して定義された単なる汎用メソッドです。

C# の抽象クラス

Animal が正確に何になるかがわかったら、基本クラスを継承する別のクラスを作成します。 動物が実際に Dog であることがわかっている場合は、メインの基本クラスを継承する Dog クラスを作成します。 ここでの主な違いは、Dog クラスは Animal クラスの description メソッドの定義を変更できないことです。 Dog-Description と呼ばれる独自の C# 抽象メソッドを定義する必要があります。 これは、C# 抽象クラスの基本概念です。

C# の抽象クラス

C# で抽象クラスを作成する

コードを変更して C# 抽象クラスを含める方法をリアルタイムの例とともに見てみましょう。 C# 抽象化クラスを使用して実行できるものは何もないため、コードは実行されないことに注意してください。

ステップ1) 最初のステップとして、抽象クラスを作成しましょう。 このクラスは Tutorial という名前になり、メソッドが XNUMX つだけ含まれます。 すべてのコードは Program.cs ファイルに記述する必要があります。

C# で抽象クラスを作成する

コードの説明:-

  1. まず抽象クラスを定義します。 抽象キーワードの使用に注意してください。 これは、クラスが抽象クラスであることを示すために使用されます。
  2. 次に、何も行わないメソッドを定義します。 メソッドには virtual というキーワードが必要です。 これは、子クラスによってメソッドを変更できないことを意味します。 これは、あらゆる抽象クラスの基本要件です。

ステップ2) 次に、子クラスを追加しましょう。 このコードは Program.cs ファイルに追加されます。

C# で抽象クラスを作成する

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シャープ は、クラスがどうあるべきかという非常に基本的な要件を持つ基本クラスです。 子クラスが基本クラスのメソッドを継承することはできません。