ID:               43200
 Updated by:       [EMAIL PROTECTED]
 Reported By:      daniel dot gorski at develnet dot org
-Status:           Open
+Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Linux
 PHP Version:      5.3CVS-2007-11-05 (CVS)
 New Comment:

<?php
    interface A {
        function foo();
    }

    abstract class B implements A {
    }

    class C extends B {
        public function foo() {
            echo 'works';
        }
    }

    $o = new C();
    $o->foo();
?>

If you don't want to implement a method from an interface, don't 
redeclare it, and the code will work as intended.


Previous Comments:
------------------------------------------------------------------------

[2007-11-05 15:50:30] daniel dot gorski at develnet dot org

Description:
------------
PHP 5.3.0-dev (cli) (built: Nov  5 2007 16:42:56) from todays CVS
HEAD.

The implementation of interfaces in concrete abstract classes and their
inheritence is not possible:



Reproduce code:
---------------
<?php
    interface A {
        function foo();
    }

    abstract class B implements A {
        abstract public function foo();
    }

    class C extends B {
        public function foo() {
            echo 'works';
        }
    }

    $o = new C();
    $o->foo();
?>

Expected result:
----------------
Echoing "works"

Actual result:
--------------
Fatal error: Can't inherit abstract function A::foo() (previously
declared abstract in B) in ...


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43200&edit=1

Reply via email to