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 MyClass ' 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 を使用することはできません。

関連項目