abstract

C#も抽象クラスを作れる・・・。

先頭にabstractとつけると、抽象クラスとなる・・・。
コンストラクタ名やメソッド名を出力しているだけ・・・。

ちゃんとした実装は、

派生クラスDerivedClassで・・・。
Setだけわざとオーバーライドしていない・・・。

抽象クラスは、インスタンスは生成できなくても変数としては使える・・・。

DerivedClassオブジェクトインスタンスをAbstractClassのabstobjに格納・・・。
コンストラクタで10, "ABC"を既にセットした・・・。

Outputで一旦出力・・・。

DerivedClassでオーバーライドしていないSetで、20, "XYZ"をセット・・・。

最後にOutputで出力・・・。

AbstractClass(int i, string str)
i = 10, str = ABC
Set(int i, string str)
i = 10, str = ABC
続行するには何かキーを押してください . . .

Setはオーバーライドされていないので、抽象クラスのメソッド名出力が呼ばれている・・・。
よって、値がセットされないのだから、そのあとのOutputで20, "XYZ"は出力されず、10, "ABC"のまま出力される・・・。

Sample/MainClass.cs at master · bg1bgst333/Sample · GitHub
Sample/AbstractClass.cs at master · bg1bgst333/Sample · GitHub
Sample/DerivedClass.cs at master · bg1bgst333/Sample · GitHub