コンストラクタの非継承
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/15 09:32 UTC 版)
「Eiffel」の記事における「コンストラクタの非継承」の解説
Eiffel の特徴の一つとして多重継承をサポートしていることが挙げられる。 多重継承時に問題となるものの一つとして、継承した二つの(あるいはそれ以上)のクラスのどちらにもコンストラクタが定義されている場合、二つのクラスのどちらのコンストラクタが実行されるか?というものがある。Eiffel の他に多重定義をサポートしている C++や Python では継承元のコンストラクタの実行順に複雑な規則が導入されている。 Eiffelではコンストラクタは継承されないことになっている。このためコンストラクタの実行手順といったものは原理的に存在しない。どうしても継承元のコンストラクタを使用する必要がある場合は、継承時に rename でコンストラクタとして宣言されているメソッドを改名し、改名したメソッドをコンストラクタ内で実行することで実装できる。
※この「コンストラクタの非継承」の解説は、「Eiffel」の解説の一部です。
「コンストラクタの非継承」を含む「Eiffel」の記事については、「Eiffel」の概要を参照ください。
- コンストラクタの非継承のページへのリンク