Well, it really depends on the ECMA working group. I would like to get
it in, and I will push for it, and I imagine that others will as well.
 
-Sho


________________________________

        From: flexcoders@yahoogroups.com
[mailto:[EMAIL PROTECTED] On Behalf Of Ralf Bokelberg
        Sent: Wednesday, February 07, 2007 11:10 AM
        To: flexcoders@yahoogroups.com
        Subject: Re: [flexcoders] Returning 'this' from an overridden
method?
        
        

        Nice to know the name of this feature. 
        Just lately somebody asked me the same question. 
        He also came from a Java background. 
        Any chance we will see it in the future? 
        
        Cheers,
        Ralf. 
        
        
        On 2/7/07, Sho Kuwamoto <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote: 

                
                The short answer is that there is no way to do what you
want for the time being. 
                 
                What you are looking for is a language feature called
"covariant return types". In certain languages (C++, Java) you can have
your subclass redefine the type that is returned by a method.

                

                 
                This would be a great thing to get into the AS language,
but it is not there now. There are further wrinkles when you consider
how you would extend properties in a similar way (I wrote about the
issues at http://kuwamoto.org/2007/01/22/covariant-property-types/
<http://kuwamoto.org/2007/01/22/covariant-property-types/> ).
                 
                 
                Cheers,
                 
                -Sho


________________________________

                        From: flexcoders@yahoogroups.com
[mailto:flexcoders@yahoogroups.com <http://yahoogroups.com> ] On Behalf
Of David_Stafford
                        Sent: Tuesday, February 06, 2007 6:13 PM
                        To: flexcoders@yahoogroups.com
                        Subject: [flexcoders] Returning 'this' from an
overridden method?
                        
                        
                        Please pardon this simple-minded question from
an AS3 novice.
                        
                        My base class often returns 'this' from methods
which makes it 
                        convenient to write code like:
                        
                        camera.move( 10, 12 ).rotateX( 45 ).rotateY( 90
);
                        
                        The problem comes when code extends the base
class and overrides one 
                        of these functions. The compiler insists,
correctly, that the return 
                        type of an overriding function must match the
one in the base class. 
                        What I want to do is return the 'this' object
that is of the type of 
                        the derived class. Is this possible?
                        
                        The following is a contrived example to
demonstrate. It won't 
                        compile because the overridden function in the
derived class wants to 
                        return a type of MyCamera rather than Camera:
                        
                        public class Camera
                        {
                        var x:int = 0;
                        var y:int = 0;
                        
                        public function move( x:int, y:int ) :Camera
                        {
                        this.x += x;
                        this.y += y;
                        
                        return( this );
                        } 
                        }
                        
                        public class MyCamera extends Camera
                        {
                        override public function move( x:int, y:int )
:MyCamera
                        {
                        super.move( x, y ); 
                        
                        if( x < 0 ) x = 0;
                        if( y < 0 ) y = 0;
                        
                        return( this );
                        } 
                        }
                        
                        

                

                




        -- 
        Ralf Bokelberg <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> >
        Flex & Flash Consultant based in Cologne/Germany
        Phone +49 (0) 221 530 15 35 

        

         

Reply via email to