前回の犬は吠えてなかったので、msgもMyBaseに代入して、吠えさせます。
14 Public Class Dog : inherits Animal 15 Public myname As String = "犬" 16 Public msg As String = "ワンワン" 17 Sub New() 18 MyBase.myname = Me.myname 19 MyBase.msg= Me.msg 20 End Sub 21 End Class
takk@deb9:~/vbtest$ vbnc test.vb ~省略~ takk@deb9:~/vbtest$ mono test.exe 犬です ワンワン takk@deb9:~/vbtest$
では、犬クラスを派生させてドーベルマンクラスを作ってみます。
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 Tell()
7 WriteLine( myname & "です")
8 End Sub
9 Sub Bark()
10 WriteLine(msg)
11 End Sub
12 End Class
13
14 Public Class Dog : inherits Animal
15 Public myname As String = "犬"
16 Public msg As String = "ワンワン"
17 Sub New()
18 MyBase.myname = Me.myname
19 MyBase.msg= Me.msg
20 End Sub
21 End Class
22
23 Public Class Doberman : inherits Dog
24 Public myname As String = "Doberman"
25 Public msg As String = "Bowwow"
26 Sub New()
27 MyBase.myname = Me.myname
28 MyBase.msg= Me.msg
29 End Sub
30 End Class
31
32 Public Class TestClass
33 <STAThread()> _
34 Shared Sub Main()
35 dim doberman as new Doberman()
36 doberman.Tell()
37 doberman.Bark()
38 End Sub
39
40 End Class
takk@deb9:~/vbtest$
作ってみましたが、何か変な感じです。
犬クラス(Dog)とドーベルマンクラス(Doberman)が似たようなクラスで、なんだか派生させる意味がないように思えるからです。
実行してみます。
takk@deb9:~/vbtest$ vbnc test.vb ~省略~ takk@deb9:~/vbtest$ mono test.exe 犬です ワンワン takk@deb9:~/vbtest$
どうしたことでしょう。ただの犬になっています。
つづく


コメント