#28269 [Opn->Csd]: Incomplete error message when instantiating child classes of an abstract class
| From: | tony2001@php.net | Date: | Mon, 03 Apr 2006 10:46:44 +0000 |
| Subject: | #28269 [Opn->Csd]: Incomplete error message when instantiating child classes of an abstract class | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-95256@lists.php.net to get a copy of this message | ||
ID: 28269
Updated by: tony2001@php.net
Reported By: phpbug at gb404 dot com
-Status: Open
+Status: Closed
Bug Type: Feature/Change Request
Operating System: *
PHP Version: 5.0.2
Assigned To: helly
New Comment:
Fixed -> closed.
Previous Comments:
------------------------------------------------------------------------
[2004-09-27 10:37:16] bobalong at gmx dot net
Thank you! Keep up the great work! PHP5 is awsome.
------------------------------------------------------------------------
[2004-09-26 20:39:39] helly@php.net
Your last complain is fixed too:
marcus@frodo /usr/src/PHP_5_0 $ php -r 'interface foo{function bar();}
class baz implements foo{}'
make: `sapi/cli/php' is up to date.
Fatal error: Class baz contains 1 abstract methods and must therefore
be declared abstract (foo::bar) in Command line code on line 1
marcus@frodo /usr/src/PHP_5_0 $ php -v
make: `sapi/cli/php' is up to date.
PHP 5.0.3-dev (cli) (built: Sep 25 2004 00:37:01) (DEBUG)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.2-dev, Copyright (c) 1998-2004 Zend Technologies
------------------------------------------------------------------------
[2004-09-25 20:16:46] bobalong at gmx dot net
Cool, and I'm sure that's not at the top of the priority list. However,
in the example above, if foo() is not implemented in class c, no compile
error is thrown. The developer must instantiate the class prior to
knowing it is abstract. This forces the developer to manually ensure
that all abstract members from higher up in an inheritence heirarchy
have been implemented.
------------------------------------------------------------------------
[2004-09-25 20:16:06] bobalong at gmx dot net
Cool, and I'm sure that's not at the top of the priority list. However,
in the example above, if foo() is not implemented in class c, no compile
error is thrown. The developer must instantiate the class prior to
knowing it is abstract. This forces the developer to manually ensure
that all abstract members from higher up in an inheritence heirarchy
have been implemented.
Is this intentional behaviour?
------------------------------------------------------------------------
[2004-09-25 00:22:21] helly@php.net
Abstract redefinition is a feature request - the rest was fixed in
5.0.0
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/28269
--
Edit this bug report at http://bugs.php.net/?id=28269&edit=1