オブジェクト指向の「継承」のイメージは、車が一台あって、タイヤだけ違うものをコピーで作る、みたいな感じです。更に、元の車になかったMDコンポなどを追加、といった感じに機能追加も簡単です。
<?php
class MyFILE extends FILE{
var $filename;
function MyFILE($fn){ $this->FILE(fn); }
function read(){ ... }
function delete(){ ... }
}
?>
このMyFILEという部品(クラス)はFILEのreadの部分のみを変更します。write,get などは基底クラスであるFILEのものになります。先ほど挙げた例で考えると、車が一台あって、ボディーやエンジンはそのまま、タイヤのみを変えてみた。という感じになります。
車一台を自分で全部一人で作るのは大変だけれど、タイヤのみなら自分でも作れる、という感じに一部分のみを作り変えることが出来るようになるわけです。
元の車が広く使われていて、実績があれば、タイヤだけを作ればよいのでより安定したものを作ることができるでしょう、というイメージで、高品質&スピーディーにアプリ作成ができます。
更に上では delete という function(メソッド) を追加しています。これは MDコンポを追加してみたような感じに機能追加をしてみました。元のFILEは編集せず、こういう感じに機能追加できます。
実際にクラスを使ってみると、
<?php
class FILE{...}
class MyFILE extends FILE{...}
$fi = new MyFILE("log.log");
$fi->read(); // MyFILEクラスのreadが呼ばれる
$fi->write(); // FILEクラスのwriteが呼ばれる
$fi->get(0,100); // FILEクラスのgetが呼ばれる
?>
な感じになります。
new なんとか っていうのは新しく部品を作っています。
class では雛形を作るだけでコンピュータ上に実体は存在しません。なので new で作るわけです。
作ったものを $fi という変数に入れて、
$fi->関数名 で呼び出せます。
なんとなくオブジェクト指向のメリットについて分かっていただけたでしょうか?
実際に使ってみることでそのメリットは非常に大きいことを思い知ることになります。
私自身そうでした。
めんどくさそうだけど、覚えてみるとこれっきゃない、と思ってしまうようになります。
更にオブジェクト指向についてしりたい方は
・デザインパターン
…
モデルを見ていくことで実際にはどういったところで使うの?というところが見えてくるかも
・UML
…
オブジェクト同士の関連を図にしたりします。
・MVCモデル
…
オブジェクト指向を使って、画面とビジネスロジックとコントローラを分離するモデリング
・Mojavi,Phrame等のフレームワーク
などについても調べてみることをお勧めします。
スポンサードリンク
もどる