オブジェクト指向ってこういうこと?(4) インターフェイスの使い方
いろいろ書き直し。
要するに。
インターフェイスは、”仕様定義”。
インターフェイスの例
私的に、上手いなあと思った例示説明。
『パソコンにUSBポートとかシリアルポートがあって。
USBマウスもPS2マウスもどっちも使えて、
USBキーボードAとかUSBキーボードBも、どっちも使える状態』
テレビとリモコンなら、電気店で「かんたんリモコン」なんて買ってきたとします。
「かんたんリモコン」でchannel1()は地デジの1チャンネル固定ですが、
TVに付属の標準リモコンでは、「地デジ」「地アナ」「BS」「CS」のモードがあって、モードで返り値が変わります。
こういう場合への対応が、「インターフェイス」
interface remo_con { public static function channel1(); (略) }
クラスは、対応するインターフェイスをimplementして作成する。
するとクラスには、「インターフェイスに書かれたメソッド」を、全てフォロー(対応)する必要(義務?)が生じる。
クラス側で、『インターフェイスが決めたメソッドに、一部対応しない』は、エラーになる。
そして、クラス側で『インターフェイスが定義してないメソッドを勝手に追加』しても、使えません。
インターフェイスは、使用可能にしておくべき機能(関数/メソッド名)全部を、定義する。
だから、インターフェイスを見るだけで、使用可能な機能がわかる。
定義がちゃんとしてれば、不用意なバグやトラブルを防げる。
だから、インターフェイスは大事。
ここが、「継承」とは違う点かなと思います。