private function privateMethod() { return 'FatherClass::privateMethod()'; } protected function protectedMethod() { return 'FatherClass::protectedMethod()'; } public function printPrivateMethod() { return $this->privateMethod(); } } class ChildClass extends FatherClass { public function printProtectedMethod() { return $this->protectedMethod(); } } $oFatherClass = new FatherClass(); $oChildClass = new ChildClass(); var_dump($oChildClass->publicMethod()); var_dump($oFatherClass->publicMethod()); //var_dump($oChildClass->privateMethod()); //PHP Fatal error: Call to private method FatherClass::privateMethod() //var_dump($oFatherClass->privateMethod()); //PHP Fatal error: Call to private method FatherClass::privateMethod() var_dump($oFatherClass->printPrivateMethod()); //var_dump($oChildClass->protectedMethod()); //PHP Fatal error: Call to protected method FatherClass::protectedMethod() //var_dump($oFatherClass->protectedMethod()); //PHP Fatal error: Call to protected method FatherClass::protectedMethod() var_dump($oChildClass->printProtectedMethod());