Re: Interface inheritance
| From: | George Schlossnagle | Date: | Mon, 19 Apr 2004 19:52:15 +0000 |
| Subject: | Re: Interface inheritance | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-9396@lists.php.net to get a copy of this message | ||
On Apr 19, 2004, at 2:49 PM, Marcus Boerger wrote:
Hello Zeev, Monday, April 19, 2004, 12:14:40 PM, you wrote:+1At 13:04 19/04/2004, Andi Gutmans wrote:Hey, I just wanted to note the fact that I disagree with this. In a perfect world, I would go with an E_COMPILE_ERROR in all situations; when inheriting regular classes (w/o abstract methods), abstract methods and interfaces. That is what the academic part of me feels but knows can't be done. As this would break BC too much, I agree that inheriting from regular classes should not lead to an error. I believe that for consistency sake interfaces and abstract classes should behave the same as regular classes, thus, if regular classes don't cause an error, the former also shouldn't.Just to clarify a bit on why I think that we should differentiate: 1. First of all, I agree that in a perfect world we should go with E_COMPILE_ERROR for everything. Maybe now that's constructors are out of the picture, people will be more receptive to the idea - if we can go down that route, that option clearly gets my vote.
yep.2. If going for E_COMPILE_ERROR in all situations is not an option, then I do see a significant difference between interface/abstract methods, and real methods, when it comes to inheriting from them. The whole interface/abstract/class type hints mechanism was added for the sole reason of enforcing prototypes, and effectively, it is pretty much useless the way things are now.repeat useless.
I also think this is the way to go. GeorgeTo make it clear, my vote still goes for option #1, if people feel better about it now...fellBetter++