抽象クラスの方法は実現できますか?

1159 ワード

抽象的な方法は実現しなかった.その実装ロジックは、派生したクラスによって提供されます.抽象クラスを使用して派生クラスのベーステンプレートを作成します.
using System; 
abstract class Test
{
    public int _a;
    public abstract void A();
} 
class Example1 : Test
{
    public override void A()
    {
    Console.WriteLine("Example1.A");
    base._a++;
    }
} 
class Example2 : Test
{
    public override void A()
    {
    Console.WriteLine("Example2.A");
    base._a--;
    }
} 
class Program
{
    static void Main()
    {
    // Reference Example1 through Test type.
    Test test1 = new Example1();
    test1.A(); 
    // Reference Example2 through Test type.
    Test test2 = new Example2();
    test2.A();
    }
}

派生クラス.Example 1またはExample 2などの派生クラスを作成する場合は、抽象クラス内のすべての抽象メソッドに書き換えメソッドを指定する必要があります.両方の派生クラスのA()メソッドは、この要件を満たしています.
じゅうか
Intフィールド.抽象クラスには、インスタンスフィールドを含めることができます.派生クラスは、このフィールドに基本構文でアクセスできます.これは抽象クラスとインタフェースの主な違いです.
整数
抽象クラスをインスタンス化できません.抽象クラスの重要な部分は、派生クラスとは決して使用できないことです.したがって、Mainでは、新しいTest()コンストラクタを使用することはできません.
ただし、テストタイプを派生タイプ(Example 1またはExample 2など)に割り当てると、Testタイプを直接使用できます.
From: https://bytes.com/topic/net/insights/958403-abstract-class