interface

インターフェイスももちろん作れる・・・。
先頭にinterfaceをつけるだけ・・・。

BaseClassを、

とする・・・。
iとstrに値をセットするこれまでのもの・・・。

ここで数値なら加算、文字列なら連結をするインターフェイスIAddを宣言・・・。

また、iとstrそれぞれの値を取得するインターフェイスIGetも宣言・・・。

これらを使って、DerivedClassを、

と定義する・・・。
インターフェイスで宣言したメソッドをきちんと実装してる・・・。

MainClassは、

まず、DerivedClassオブジェクトderivedを作成し、一旦Outputで出力・・・。

Setで10, "ABC"をセットし、Outputで出力・・・。

GetInt, GetStringでderivedにセットされている値を取得し、WriteLineで出力・・・。

Addに20を指定すると、derivedのiの値に20を加算する・・・。
Addに"XYZ"を指定すると、derivedのstrの文字列に"XYZ"を連結する・・・。
最後にそれらをOutputで出力・・・。

(i, str) = (0, -)
(i, str) = (10, ABC)
i = 10
str = ABC
(i, str) = (30, ABCXYZ)
続行するには何かキーを押してください . . .

最初のOutputは何もセットしてないので、初期値・・・。
Setで10と"ABC"をセット・・・。
GetIntとGetStringで取得したのも、10, "ABC"・・・。
最後にAddでi( = 10)に20を加算し、str( = "ABC")に"XYZ"を連結したので、iは30, strは"ABCXYZ"となる・・・。

Sample/MainClass.cs at master · bg1bgst333/Sample · GitHub
Sample/BaseClass.cs at master · bg1bgst333/Sample · GitHub
Sample/IGet.cs at master · bg1bgst333/Sample · GitHub
Sample/IAdd.cs at master · bg1bgst333/Sample · GitHub
Sample/DerivedClass.cs at master · bg1bgst333/Sample · GitHub