0
Help us understand the problem. What are the problem?

posted at

updated at

phpのインターフェースとは

phpのインターフェースとは

インターフェースとは、クラスがメソッド持っていることを定義するオブジェクト指向の仕組み。
インターフェース ≒ 抽象クラスである

抽象クラスと具象クラス

具象クラス
具象という単語が意味する通り処理を記述したメソッドの集まり。
メソッドの中身が記述されている
インスタンス化して使用できるクラス

抽象クラス
インターフェースと通常のクラスの中間のようなクラスで、処理の記述がないメソッドを1つ以上持つクラスのこと。
抽象クラスだけでは意味を持たず、サブクラスに継承されることで初めて機能する。
メソッドの中身が記述されていない
・直接インスタンス化できない
・多重継承できない
インスタンス化するには、抽象クラスを継承した具象クラスですべての抽象クラスをオーバーライドする必要がある
・サブクラスでコンストラクタを記述しなければならない

インターフェースのメリット

最大のメリットは、継承関係に縛られることなく、複数のクラスに共通の仕様と資格(似たような処理を一つのグループにまとめる)を与えることができる点。
→インターフェースを実装したクラスには定義してある抽象メソッドに対して実装されたメソッドが必ず存在する
→どんなクラスなのか、ソースを追う必要がなくなる。

→クラスではなく、インターフェースを依存させることで、インターフェースを継承したクラスならどれでも依存させることができる。(呼び出す際に使いたいクラスを呼び出す必要あり)
→クラス通しが疎結合になる

インターフェースの定義

・定義可能なのは抽象メソッド(処理の技術がない)だけ
・アクセス修飾子には「public」しか指定できない
・直接インスタンスの生成は不可能

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?