* 仕様書

[REFS[
- [6] [CITE[Web IDL (Second Edition)]] ([TIME[2014-02-10 21:45:38 +09:00]] 版) <http://heycam.github.io/webidl/#dfn-inherit>
- [9] [CITE[Web IDL (Second Edition)]] ([TIME[2014-02-10 21:45:38 +09:00]] 版) <http://heycam.github.io/webidl/#dfn-inherit-exception>
- [1] [CITE[Web IDL (Second Edition)]] ([TIME[2014-02-10 21:45:38 +09:00]] 版) <http://heycam.github.io/webidl/#idl-special-operations>
]REFS]

* オブジェクトによる実装

[11] どの[[オブジェクト]]がどの[[インターフェイス]]を[[実装]]するかは、
関係する[[仕様書]] (の本文や [[IDL素片]]) によって規定されます。

[8] ある[[オブジェクト]]が[[実装]]すると定義できるのは1つの[[インターフェイス]] [SRC[>>6]]
または[[例外]]だけで、任意の適当な[[インターフェイス]]の集合を[[実装]]することはできない、
とされています。ある[[インターフェイス]]や[[例外]]を[[実装]]すると、
その[[継承]]する、あるいは[[実装]]すると指定されたすべての[[インターフェイス]]や[[例外]]を[[実装]]しなければなりません。

;; [13] 実際の [[Web]] の仕様では、 [CODE(DOMi)@en[[[Window]]]] が
[CODE(DOMi)@en[[[WindowModal]]]] も[[実装]]しなければならない場合があるなど、
[[Web IDL]] 上で関係が記述されない複数の[[インターフェイス]]を同時に[[実装]]する[[オブジェクト]]が存在します。

[7] ある[[インターフェイス]]や[[例外]]を[[実装]]する[[オブジェクト]]は、
その[[継承インターフェイス]] [SRC[>>6]] や[[継承例外]] [SRC[>>9]]
も[[実装]]することになります。 

[10] ある[[インターフェイス]]を[[実装]]する[[オブジェクト]]は、更に追加で
[CODE(IDL)@en[[[implements]]]] [[文]]によって指定された[[インターフェイス]]も[[実装]]しなければなりません。

* メンバーとの関係

[4] [[オブジェクト]]が[[特殊演算]]を定義する[[インターフェイス]]を複数個[[実装]]する場合、
どれが呼び出されるかは[[未定義]]です [SRC[>>1]]。

;; [12] [[継承]]の場合も[[未定義]]なのでしょうか。

;; [2] [[継承]]以外でそのような例はなさそうです。

* 歴史

[REFS[
- [3] [CITE@en[Re: partial interfaces, ''''''[''''''NoInterfaceObject'''''']'''''']]
( ([[Jonas Sicking]] 著, [TIME[2014-02-15 04:41:15 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-script-coord/2014JanMar/0165.html>
]REFS]