開発メモ

気負わずに、ちょくちょく勉強進めていきたい。。。

interfaceとabstract

http://havelog.ayumusato.com/develop/php/e166-php-interface-abstract.html
読んで、interfaceとabstractの違いを自分用メモにまとめた。

interface

特徴

・実装を伴うメソッドやプロパティの宣言はできない
・クラスはインターフェイスで宣言されたメソッドをすべて実装しなくてはいけない
・返り値の型強制はできない
インスタンス化できない

abstract

特徴

・実装を伴う目祖度やプロパティの宣言はできる
・クラスはアブストラクトで宣言されたメソッドをすべて実装しなくてはいけない
インスタンス化できない(継承されたサブクラスをインスタンス化は可能)

abstract
複数の派生先クラスで、一部の実装が異なる場合。

interface
不特定のクラスを共通の方法で、取り扱えるようにしたい場合。

http://havelog.ayumusato.com/develop/php/e166-php-interface-abstract.html

権限

・protected そのクラス自身と継承したクラス、親クラスからのみ
・public どこからでも
・private そのメンバーを定義したクラスからのみ