- ベストアンサー
インターフェイスと抽象メソッドについてお願いします。
PHPの参考書で「抽象メソッド」と「インターフェイス」それに「実装」という言葉が出てきました。 プログラミングが初めてで全然理解できなく困っています。 ・抽象メソッド ・インターフェイス ・実装 上記の意味とメリットなどを教えてください。それとどのような面で使うのかも教えていただけると嬉しいです。 すみませんが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://www.itarchitect.jp/technology_and_programming/-/27052.html インターフェース 実装 抽象クラス でぐぐった一発目です。 参考になるかは分かりませんが。(javaだし) 詳しく知りたい場合はjavaコミュニティの方が優秀な回答をしてくれるのではないかと思うのは希望的観測。 概要だけ説明すると abstruct宣言された「クラスの設計図」が抽象クラス abstructされた関数などを実際に構築するのが「実装」 「インターフェース」は全てがabstract と考えておけば最初はいいんじゃないですかね。 実質的には違いますが。 >それとどのような面で使うのかも教えていただけると嬉しいです。 たとえば「ファイルを読み込みインスタンス内で情報を保持するクラス」を設計するとして、 ・iniファイル ・csvファイル ・テキストファイル と多岐に渡ってサポートするとします。 いざ設計するとなると ・一つのクラスで全てのファイルをサポート ・読み込むファイル種別ごとに別のクラスを設計 と言う選択肢がありますが、普通の人は種別ごと設計を選ぶと思います。 ここで抽象クラスが活躍します。 なぜなら fopen()->fread()->パース処理->fclose() といった一連の流れはどれも同じだからです。 この「どれも同じ」流れを抽象クラス内で定義しておき、 パースはabstract宣言しておきます。 で、実際にCSV,ini,textを読み込むクラスを構築する際にabstractの関数を実装するわけです。 こうすることで近い将来「XMLファイルの読み込みもサポートしたい!」とか 「CSVファイルの読み込みでタブ区切りを実装したい!」とかいった要求にも 比較的容易に(作成者以外の人にも)改修を加えることが出来るようになります。 インターフェースについても同様です。 まぁ結局は使い方次第ですけどね。 いろんな用途がありますので、上記は一例として捉えていただけると幸いです。 // ファイル読み込みなんてphpコアに実装されてますしねー。。 // まぁ当方はソフトウェア工学を完璧に修めたわけではないので // 間違いがあったら指摘してください。
その他の回答 (1)
- ulmo
- ベストアンサー率43% (197/454)
それ、飛ばして下さい。理解しなくていいです。 プログラミング初心者に、オブジェクト指向はレベルが高すぎます。 まずは文法、条件分岐(if)、繰り返し(for)などを学び、 続いて関数を理解して下さい。そこまでできてクラスへ進みます。