Bug #67777 [Com]: Method overriding and derived classes

From: Date: Thu, 27 Nov 2014 13:01:20 +0000
Subject: Bug #67777 [Com]: Method overriding and derived classes
References: 1  Groups: php.standards 
Request: Send a blank email to standards-+get-575@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=67777&edit=1 ID: 67777 Comment by: cmbecker69 at gmx dot de Reported by: joelm@php.net Summary: Method overriding and derived classes Status: Open Type: Bug Package: PHP Language Specification PHP Version: Irrelevant Block user comment: N Private report: N New Comment: > When a derived class overrides a method, if there is no abstract > decl (either abstract decl in an abstract parent or a decl in an > implemented interface) in the inheritance hierarchy then > whatever signature you want can be used for the derived method. In this case, however, the derived class doesn't *override* a method, but rather it *introduces* a new method. Previous Comments: ------------------------------------------------------------------------ [2014-11-27 10:44:52] jpauli@php.net Is this a PHP bug ? ------------------------------------------------------------------------ [2014-08-05 17:01:00] joelm@php.net Description: ------------ https://github.com/php/php-langspec/blob/master/spec/14-classes.md#general "Methods and properties from a base class can be overridden in a derived class by redeclaring them with the same signature defined in the base class." This is not accurate. When a derived class overrides a method, if there is no abstract decl (either abstract decl in an abstract parent or a decl in an implemented interface) in the inheritance hierarchy then whatever signature you want can be used for the derived method. If there is an abstract decl in the inheritance hierarchy, then the derived method's signature must match the signature of the abstract decl. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=67777&edit=1

« previous php.standards (#575) next »