LOTUSSCRIPT 言語


派生クラス
派生クラスは以前に定義されたクラスから作成されます。

構文は次の通りです。

[ Public | Private ] Class className As baseClass


End Class
要素説明
Public、PrivatePublic を指定すると、この派生クラスが定義されたモジュールの外でも使用できます。Private (既定) を指定すると、派生クラスが定義されたモジュール内だけで使用できます。
className派生クラスの名前です。
baseClassこの派生クラスの派生元となるベースクラスの名前です。
classBodyメンバ変数は LotusScript でサポートされるデータ型のどれでもよく、定義中のクラスのオブジェクト参照変数でも構いません。また、プロパティ、関数、サブルーチンも指定できます。サブルーチンには Sub New (クラスオブジェクトを初期化します) および Sub Delete (クラスオブジェクトを削除します) が含まれます。クラスメンバを Static として宣言することはできません。
次の例は、ベースクラス MyClass1 を使用して MyClass2 という派生クラスを派生させています。

Class MyClass1                  ' Base class.
     a As Integer
     Public c As Integer
     '...
End Class

Class MyClass2 As MyClass1     ' Class derived from MyClass1.
     b As Integer
     Public d As Integer
     '...
End Class
Dim x As New MyClass2 ' Object x has members
                     ' a%, b%, c%, and d%.
x.c% = 12
x.d% = 35
'...

通常は、新規クラスが使用できるメンバを既存クラスが持っている場合、または既存クラスのプロパティやメソッドを拡張または追加する場合に派生クラスを使用します。これは「継承」と呼ばれます。新しいクラスは既存ベースクラスから継承し、既存ベースクラスのすべての Public メンバと Private メンバを使用することができます。

たとえば、既存の Account クラスを元にして、CheckingAccount、SavingsAccount、BrokerageAccount、および RetirementAccount という派生クラスを作成するとします。派生クラスは AccountNumber、Balance、DepositMoney などの Account クラスの既存のすべてのプロパティとメソッドを使用できるため、新しいクラスで Account クラスのすべてのスクリプトを使用することができます。

ベースクラスのプロパティとメソッドを継承する派生クラスをデモする

派生クラスでは新しいメンバ変数、プロパティ、メソッドを定義して、派生クラスが使用できる操作を追加できます。たとえば、BrokerageAccount クラスに BuyStock メソッドと SellStock メソッドを追加できます。

派生クラスは別の派生クラスのベースクラスとなることもできます。たとえば、次の図は、Employee クラスから派生した Contractor クラスが Subcontractor クラスのベースクラスとなる様子を示しています。Subcontractor クラスは Contractor クラスと Employee クラスの両方のメンバを使用できます。

派生クラスはベースクラスと同じスコープを持っています。ただし、派生クラスはベースクラスの Sub Delete を使用することはできません。

関連項目