Linux(mono)でVB、継承

英語で「継承する」は、inheritです。
inheritって単語が難しすぎます。日本語の継承でも難しいのに。
よみかたは、インヘリットでよいのでしょうか。
たまに、間違った読み方が浸透してるプロジェクトもあって、正しく読んでるこちらが恥ずかしくなる英単語とかありますよね。
haltをハルトって呼んでたり、Gitをジットと呼んでたり、話通じなくなりますね。
ホールト、ギット以外に読めないんだけどなあ。

inherit使ってみます。

まずは、この犬クラスを、アニマルクラスに変更してみます。

takk@deb9:~/vbtest$ cat -n test.vb | head -12
     1  Imports System.Console
     2
     3  Public Class Dog
     4          Private myname As String = "犬"
     5          Private msg As String = "ワンワン"
     6          Sub New()
     7                  WriteLine( myname & "です")
     8          End Sub
     9          Sub Bark()
    10                  WriteLine(msg)
    11          End Sub
    12  End Class
takk@deb9:~/vbtest$

動物に変えました。

takk@deb9:~/vbtest$ cat -n test.vb
     1  Imports System.Console
     2
     3  Public Class Animal
     4          Private 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 TestClass
    18          <STAThread()> _
    19          Shared Sub Main()
    20                  dim app as new Animal("動物")
    21                  app.Tell()
    22          End Sub
    23
    24  End Class
takk@deb9:~/vbtest$

次にこの動物を継承して犬を作って、使ってみます。

takk@deb9:~/vbtest$ cat -n test.vb
     1  Imports System.Console
     2
     3  Public Class Animal
     4          Private 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
    18          Private myname As String = ""
    19          Private msg As String = ""
    20          Sub New(myname As String)
    21                  Me.myname = myname & "犬"
    22          End Sub
    23          Sub Tell()
    24                  WriteLine( myname & "です")
    25          End Sub
    26          Sub Bark()
    27                  WriteLine(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          End Sub
    37
    38  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.5419950
takk@deb9:~/vbtest$ mono test.exe
秋田犬です
takk@deb9:~/vbtest$

まあ、ぜんぜん意味のないサンプルになってます。
少しずつ、VBでのオブジェクト指向を覚えつつ、
このサンプルソースを叩いて叩いて、良いサンプルに仕上げていきます。

Leave a Reply

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

CAPTCHA