Edit report at https://bugs.php.net/bug.php?id=44033&edit=1
ID: 44033
Comment by: dagguh at gmail dot com
Reported by: giorgio dot liscio at email dot it
Summary: make working abstract methods body in abstract
classes
Status: Open
Type: Feature/Change Request
Package: Class/Object related
Operating System: *
PHP Version: 5.2.5
Block user comment: N
Private report: N
New Comment:
You obviously don't know what abstract methods are about.
Learn OOP, please. This is what you want:
<?php
abstract class Base
{
protected final function commonCheck()
{
echo("WOW! ");
$this->customCheck();
}
protected abstract function customCheck();
}
class Real extends Base
{
protected function customCheck()
{
echo("IT IS WORKING!");
}
}
?>
Previous Comments:
------------------------------------------------------------------------
[2008-02-03 20:33:53] giorgio dot liscio at email dot it
the requested behavior can works with multiple abstract inheritance
abstract class One
{abstract function m(){echo("one ");}}
abstract class Two extends One
{abstract function m(){parent::m();echo("two ");}}
abstract class Three extends Two
{abstract function m(){parent::m();echo("three ");}}
class RealClass extends Three
{
function m(){parent::m();echo("real implementation");}
}
------------------------------------------------------------------------
[2008-02-03 18:57:02] giorgio dot liscio at email dot it
Description:
------------
hello
i think can be useful make working abstract methods body in abstract classes
please read carefully ;) i hope you like it
thank you for your time
Reproduce code:
---------------
<?php
abstract class Base
{
abstract protected function commonCheck()
{
echo("WOW! ");
}
}
class Real extends Base
{
// there I MUST implement the abstract method in all cases
// the implementation can consists:
// 1 - in one new procedure,
// 2 - in parent method calling (used the abstract body like a model)
// 3 - both
protected function commonCheck()
{
parent::commonCheck();
echo("IT IS WORKING!");
}
}
?>
Expected result:
----------------
echo("WOW ");
echo("IT IS WORKING!");
Actual result:
--------------
Fatal error: Abstract function Base::commonCheck() cannot contain body
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=44033&edit=1