カテゴリー:
クラスとオブジェクト
閲覧数:948 配信日:2013-11-08 23:24
概要
「プロパティ」オーバライド
・親クラスのインスタンスを生成
・親クラス内での$thisの挙動確認
→ 全て親クラス
ケース1
・親クラスプロパティprotected
・子クラスプロパティprotected
→親クラスプロパティ
class Oya{
protected $price="100";
public function getPrice(){ // ゲッター
return $this->price;
}
}
class Ko extends Oya{
protected $price="50"; // プロパティをオーバーライド
}
$oya = new Oya();//親クラスのインスタンスオブジェクトを生成
echo '親クラスのインスタンスオブジェクトプロパティ' . $oya->getPrice(),PHP_EOL;
// 処理結果
// 親クラスのインスタンスオブジェクトプロパティ100
ケース2
・親クラスプロパティprivate
・子クラスプロパティprivate
→親クラスプロパティ
class Oya{
private $price="100";
public function getPrice(){ // ゲッター
return $this->price;
}
}
class Ko extends Oya{
private $price="50";
}
$oya = new Oya();//親クラスのインスタンスオブジェクトを生成
echo '親クラスのインスタンスオブジェクトプロパティ' . $oya->getPrice(),PHP_EOL;
// 処理結果
// 親クラスのインスタンスオブジェクトプロパティ100
ケース3
・親クラスプロパティprivate
・子クラスプロパティprotected
→親クラスプロパティ
class Oya{
private $price="100";
public function getPrice(){ // ゲッター
return $this->price;
}
}
class Ko extends Oya{
protected $price="50";
}
$oya = new Oya();//親クラスのインスタンスオブジェクトを生成
echo '親クラスのインスタンスオブジェクトプロパティ' . $oya->getPrice(),PHP_EOL;
// 処理結果
// 親クラスのインスタンスオブジェクトプロパティ100