はずかしながら、僕はずっとClass、オブジェクト指向を
間違えて覚えてたわけです。
というより、深く考えてなかった。
なので、備忘録としてメモ
---車--- (良くある例ですね
・走る
・曲がる
・止まる
ーーーーーーー
ーーー救急車ーーー ーーー4tトラックーーー
・サイレン鳴らす ・リフトが上がる
ーーーーーーーーー -----------
同じ車の機能がある。
ただその車の中にも上記のように、救急車、トラックなど
用途別に追加しなきゃいけない機能もある。
そこで
---車---
・走る
・曲がる
・止まる
ーーーーーーー
↓継承 ↑親クラス ↓継承 ↑親クラス
ーーー救急車ーーー ーーー4tトラックーーー
・サイレン鳴らす ・リフトが上がる
ーーーーーーーーー -----------
継承することで、”車”というものについている機能を
救急車や、トラックに継承する。
これでコードの管理など、とにかく分かりやすくなる。
ex)
---車---
<?php
class car{
function Run(){
走る
$this -> curve();
}
function Stop(){
止まる
}
function Curve(){
曲がる
}
}
?>
ーーー軽自動車ーーー
<?php
class kei extends Car{
function index(){
$this -> run();
$this -> クラクション();
}
function run(){
}
}
?>
では、ここのclass keiの$thisはどこをさしているのか。
これは親だと思っていますが
”これ”という意味だったので
class keiの中のrun()をさすんですね。
もし、class keiにfunction run()がなければ
親クラスからもってくるわけです。
ただ、もしclass keiに
function run(){
parent :: run();
}
となっていれば、継承元の
親クラスから持ってきます。
いやぁ。
やっぱ擬似コードを書いてもらいながら、説明いただけると
かなりわかりやすい。
すっきりしたー!
実際にコードはかけてたけど、
一番いけない「あ、なんか動いた」
状態でした。
続きはまた。
つぎは__constractかな。
※あ、大文字小文字ぐちゃぐちゃだ。すんません。