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

VBで継承を覚えてます。
AnimalでもっているメソッドはDogから完全に削除します。

takk@deb9:~/vbtest$ cat -n test.vb
     1  Imports System.Console
     2
     3  Public Class Animal
     4          Public myname As String = "動物"
     5          Private 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          End Sub
    21  End Class
    22
    23  Public Class TestClass
    24          <STAThread()> _
    25          Shared Sub Main()
    26                  dim akitaDog as new Dog("秋田")
    27                  akitaDog.Tell()
    28          End Sub
    29
    30  End Class
takk@deb9:~/vbtest$

実行結果は同じになるでしょうか。

takk@deb9:~/vbtest$ vbnc test.vb
Visual Basic.Net Compiler version 0.0.0.5943 (Mono 4.0.1 - tarball)
Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.

Assembly 'test, Version=0.0, Culture=neutral, PublicKeyToken=null' saved successfully to '/home/takk/vbtest/test.exe'.
Compilation successful
Compilation took 00:00:00.5196550
takk@deb9:~/vbtest$ mono test.exe
秋田犬です
takk@deb9:~/vbtest$

大丈夫のようです。
吠えさえてみます。

    23  Public Class TestClass
    24          <STAThread()> _
    25          Shared Sub Main()
    26                  dim akitaDog as new Dog("秋田")
    27                  akitaDog.Tell()
    28                  akitaDog.Bark()
    29          End Sub
    30
    31  End Class
takk@deb9:~/vbtest$

実行。

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

~省略~

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

takk@deb9:~/vbtest$

あれ、吠えません。

これでどうでしょうか。変更箇所は、5行目と18行目です。

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          Public msg As String = "ワンワン"
    19          Sub New(myname As String)
    20                  Me.myname = myname & "犬"
    21          End Sub
    22  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