派生クラスは以前に定義されたクラスから作成されます。
構文は次のとおりです。
[ Public | Private ] Class className As baseClass
classBody
End Class
要素 |
説明 |
---|---|
Public、Private |
Public を指定すると、この派生クラスが定義されたモジュールの外でも使用できます。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 を使用することはできません。