Linux(mono)でVB、継承(その4)

親クラスであるAnimalクラスのmsg変数を子クラスで利用したいので、Dogクラスでmsgを定義してはいけませんね。
このように改良しました。

takk@deb9:~/vbtest$ cat -n test.vb
     1  Imports System.Console
     2
     3  Public Class Animal
     4          Public myname As String = "動物"
     5          Public msg As String = ""
     6          Sub New(myname As String)
     7                  Me.myname = myname
     8          End Sub
     9          Sub Tell()
    10                  WriteLine( myname & "です")
    11          End Sub
    12          Sub Bark()
    13                  WriteLine(msg)
    14          End Sub
    15  End Class
    16
    17  Public Class Dog : inherits Animal
    18          Sub New(myname As String)
    19                  Me.myname = myname & "犬"
    20                  Me.msg = "ワンワン"
    21          End Sub
    22  End Class
    23
    24  Public Class TestClass
    25          <STAThread()> _
    26          Shared Sub Main()
    27                  dim akitaDog as new Dog("秋田")
    28                  akitaDog.Tell()
    29                  akitaDog.Bark()
    30          End Sub
    31
    32  End Class
takk@deb9:~/vbtest$
takk@deb9:~/vbtest$ vbnc test.vb

~省略~

takk@deb9:~/vbtest$ mono test.exe
秋田犬です
ワンワン
takk@deb9:~/vbtest$

ワンワンが言えるようになりました。

では、Animalを継承して、猫も作ってみます。

    24  Public Class Cat : inherits Animal
    25          Sub New(myname As String)
    26                  Me.myname = myname & "猫"
    27                  Me.msg = "にゃー"
    28          End Sub
    29  End Class
    30
    31  Public Class TestClass
    32          <STAThread()> _
    33          Shared Sub Main()
    34                  dim akitaDog as new Dog("秋田")
    35                  akitaDog.Tell()
    36                  akitaDog.Bark()
    37
    38                  dim persianCat as new Cat("ペルシャ")
    39                  persianCat.Tell()
    40                  persianCat.Bark()
    41          End Sub
    42
    43  End Class
takk@deb9:~/vbtest$

実行してみます。

takk@deb9:~/vbtest$ vbnc test.vb

~省略~

takk@deb9:~/vbtest$ mono test.exe
秋田犬です
ワンワン
ペルシャ猫です
にゃー
takk@deb9:~/vbtest$

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA