このページでは、オブジェクト指向における「インターフェースの実装」について取り上げています。
オブジェクト指向のインターフェースにおいて、新しいクラスを作り、インターフェースの抽象メソッドに定義を与える(実装する)ことです。
インターフェースは実装をもたない抽象メソッドを含んでいるため、そのままインスタンス化することはできません。インスタンス化するには、インターフェースを元にして、新たなクラスを定義し、すべての抽象メソッドに定義を与える必要があります。
新たなクラスを定義するソースコードは、既存のクラスのサブクラスを定義するときとよく似ていることが多いですが、既存のクラスを引き継いだサブクラスを作り出すことを継承と呼ぶのに対して、インターフェースでは(インターフェースの)実装と呼ばれます。つまり、クラスには実装があって、それらを引き継ぐので “継承” であり、インターフェースは実装がなくて(抽象メソッドによって規約のみを定めている)、それらを記述するクラスを定義するため “実装” と呼び分けます。
C# のように継承と実装の構文に違いがない場合もありますし、Java のように継承には extendsキーワード、実装には implementsキーワードといった使い分けをする場合もあります。
C++ は、言語の仕様としてはインターフェースの機能を持っておらず、代わりにクラスと純粋仮想関数を用いて実現します。そのため事実上はクラスなので、インターフェースの実装にあたるものは、継承とまったく同じです。
C++ のインターフェースについては、C++編【言語解説】第29章で解説しています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |