abstract valuetypeにはメソッドだけがあり,状態はありません。abstract valuetypeは実体化できません。abstract valuetypeは,単にローカルインプリメンテーションのあるオペレーションのシグニチャの固まりです。
例えば,次のIDLは状態を含みませんが,一つのメソッドget_nameを含むabstract valuetype Accountを定義します。
abstract valuetype Account{
string get_name();
}
ここで,二つのvaluetypeが定義されます。これはabstract valuetypeからget_nameメソッドを継承します。
valuetype savingsAccount:Account{
private long balance;
}
valuetype checkingAccount:Account{
private long balance;
}
これら二つのvaluetypeには変数balanceがあり,abstract valuetype Accountからget_nameメソッドを継承します。