2017-09-17 6 views
0
abstract class mobile{ 


    protected function fontcamdef($r){ 

     return 'it is '.$r.' MP and type '; 
    } 
    abstract protected function fontcamflash($ty); 
} 

class rep extends mobile{ 

    function fontcamflash($ty){ 

     return 'font flash is '.$ty; 
    } 
} 

$obj = new rep(); 
echo $obj->fontcamdef(6); 
echo $obj->fontcamflash('good'); 

fontcamdefrepのオブジェクトで呼び出すと、以下のようなエラーが表示されます。抽象クラスでは、サブクラスは親クラスの保護されたデータ/メソッドにアクセスできますか?

!) Fatal error: Call to protected method mobile::fontcamdef()

+0

を保護されたメソッドを呼び出すことはできませんか? 'protected'は、サブクラス_が外部世界ではなくそれにアクセスすることを可能にします。それは '公的なもの'のためです。 – tkausl

答えて

0

あなたは、あなたが何を期待してなかったクラスのうち

abstract class mobile{ 
    protected function fontcamdef($r){ 
     return 'it is '. $r.' MP and type '; 
    } 
    abstract protected function fontcamflash($ty); 
} 

class rep extends mobile{ 
     public function fontcamdef1($r) 
      { 
      return $this->fontcamdef($r); 

      } 

    function fontcamflash($ty){ 
      return 'font flash is '. $ty; 
    } 
} 

$obj = new rep(); 
echo $obj->fontcamdef1(6); 
echo $obj->fontcamflash('good'); 
関連する問題