abstract 修飾子は、その修飾対象の実装が不足しているか、不完全であることを示します。 クラスやメソッド、プロパティ、インデクサー、イベントと組み合わせて abstract 修飾子を使用することができます。 クラス宣言に abstract 修飾子を使用して、クラスは他のクラスの基底クラスとしてのみ使用することを意図し、それ自体ではインスタンス化されないことを示します。 abstract としてマークされたメンバーは、その抽象クラスから派生した非抽象クラスによって実装される必要があります。 抽象クラスには、抽象メンバー (実装がなく、派生クラスでオーバーライドする必要があります) と完全に実装されたメンバー (通常のメソッド、プロパティ、コンストラクターなど) の両方を含めることができます。 これにより、抽象クラスは共通の機能を提供しながら、派生クラスで特定の抽象メンバーを実装する必要