例コード1 [プライベート保護及び公共VS]:印刷クラス継承PHP
<?php
class People
{
private function status() {return __METHOD__;}
public function Sleep(){
echo $this->status().'<br />';
}
}
class Programmer extends People
{
private function status() {return __METHOD__;}
}
$obj = new Programmer();
$obj->Sleep();
?>
:People::status
コード例2:印刷
<?php
class People
{
protected function status() {return __METHOD__;}
public function Sleep(){
echo $this->status().'<br />';
}
}
class Programmer extends People
{
protected function status() {return __METHOD__;}
}
$obj = new Programmer();
$obj->Sleep();
?>
:Programmer::status
privateとprotectedの修飾子メソッドではすべて異なります。
なぜ最初のケースで私はPeople::status
を得ますか?なぜ私はProgrammer::status
を得ていないのですか?
私に説明してください、私はこの瞬間を理解していません。
'People'は' Programmer'プライベートメソッドにアクセスできないためです。 –
なぜですか?私はPeopleクラスを継承しています - その意味はプログラマクラスの 'sleep()'です – MaximPro
保護クラスとパブリックメソッド/変数だけが、拡張クラスが継承できます。 – vher2