Re: Interface inheritance

From: Date: Tue, 20 Apr 2004 14:48:44 +0000
Subject: Re: Interface inheritance
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-9421@lists.php.net to get a copy of this message
On 20 Apr 2004 at 17:38, Stanislav Malyshev wrote: > FB>>interface A { > FB>> public function doSomething($integer1, $integer2); > FB>>} > FB>> > FB>>interface B { > FB>> public function doSomething(MyObject $obj); > FB>>} > FB>> > FB>>class Impl implements A, B > FB>>{ > FB>> // "Overloaded" - supports both doSomething() interfaces > FB>> public function doSomething() > FB>> { > FB>> // Use var_args to distinquish the two doSomething()'s > FB>> } > FB>>} > > The problem here that you can't know if Impl would actually accept > MyObject or two integers as arguments. So if some method requires object > with interface A and it's passed Impl, it cannot actually be sure it can > use it as an A object. Impl guarantees that by implementing interface A. What if Impl::doSomething() would accept exactly two parameters, but expects them to be arrays? IMO you cannot enforce this strictness with loose types... -- Ferdinand Beyer <fb@fbeyer.com>

« previous php.internals (#9421) next »