書籍転載
|
![]() |
Page1
Page2
|
●8.2.3 インターフェイスの多重継承、多重実装
インターフェイスには、クラスの継承にはない特徴的な機能がいくつかあります。
1つは、インターフェイス自体が、インターフェイスを継承できることです。ただ、継承と言っても、実装するわけではありませんから、基本となるインターフェイスをそのまま引き継ぐだけで、宣言も不要です。
また、引き継ぐインターフェイスは、1つだけでなく複数指定ができます。ここが、抽象クラスと異なる点です。抽象クラスは、単一継承なので、基本クラスは1つしか指定できません。
構文は、以下のようになります。
|
|
[構文]インターフェイスの継承 |
複数のインターフェイスを継承する場合は、派生したインターフェイスの宣言で、基本となるインターフェイスをInheritsステートメントでそれぞれ指定します。あるいは、コンマで区切っても宣言できます。たとえば、2つのインターフェイスを継承する場合は次のようになります。
Interface ISampleInterface |
では次に、実際のサンプルコードを示します。
|
|
[サンプル]interface3.vb |
サンプルコードのISampleInterfaceは、基本となるインターフェイスをそのまま含んでいます。そのため、その実装クラスであるSampleクラスでは、Interface1、Interface2で宣言したメソッドを含め、すべてのインターフェイスの実装が必要です。
次にインターフェイスの特徴の2つ目です。それは、1つのクラスで、複数のインターフェイスを実装できることです。継承では1つのクラスしか指定できませんでした。複数のインターフェイスを実装するには、クラスの宣言で、以下のようにコンマで区切ってインターフェイスを指定します。
|
|
[サンプル]interface4.vb |
あるいは、次のように、Implementsキーワードを各インターフェイスごとに指定することもできます。
Class SampleClass |
通常のクラスの継承とインターフェイスの実装を合わせて記述することもできます。ただし、次のように、Inheritsステートメントを必ずインターフェイスよりも先に記述しなければなりません。
Class SampleClass |
マルチステートメントによる書き方では、次のようになります。
Class SampleClass : Inherits BaseClass |
【コラム】抽象クラスとインターフェイスのイメージ |
抽象クラスとインターフェイスは、その違いがイメージできないと、なかなか使いどころがわからないものです。ここで、そのイメージを整理してみましょう。 抽象クラスを継承する場合、実装は派生クラスで定義するといっても、両者のクラスには「乗り物」-「自動車」といったis-a関係となるようにすべきです。親子関係のような、縦のつながりを無視することはできないのです。一方、インターフェイスは、そのような関係には束縛されません。インターフェイスを実装するということは、インターフェイスで宣言されているメソッドが、そのクラスで使えるということを示しているにすぎません。言ってみれば、インターフェイスの実装は、横のつながりということになるでしょう。関係のないクラスでも、インターフェイスによって共通性を持たせることができるのです。 |
■
次回は「第11章 高度なプログラミング〜プログラミングの世界を広げる」の「11.4 演算子のオーバーロード(Visual Basic 2005)」を転載します。
![]() |
INDEX | ||
[書籍転載]文法からはじめるプログラミング言語Microsoft Visual Basic入門 | ||
VB開発者のためのインターフェイス入門 | ||
1.インターフェイスとは/データ型としてのインターフェイス | ||
![]() |
2.インターフェイスの多重継承、多重実装 | |
![]() |
![]() |
「文法からはじめるプログラミング言語Microsoft Visual Basic入門」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |