You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Mohan Radhakrishnan <Mo...@hclcomnet.co.in> on 2002/12/04 11:47:14 UTC

abstract class

Hi,

   If an action has two different behaviours then it is advised to use an
abstract method in the base class that the sub-action can override.

   Our base action's perform method has to pass control to a sub action's
method for the varying behavior. But if we use an abstract method then the
action cannot be instantiated.

 How is this usually done?
Thanks,
mohan

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: abstract class

Posted by Brian Hickey <bh...@r-effects.com>.
LOL!

Yes. 'Tis true. I would suggest a different approach, but it is irrelevant.
I am simply trying to help someone to find an answer. Thanks for the
explanation :o)

Brian


----- Original Message -----
From: "Andrew Hill" <an...@gridnode.com>
To: "Struts Users Mailing List" <st...@jakarta.apache.org>
Sent: Wednesday, December 04, 2002 7:44 AM
Subject: RE: abstract class


> <snip>
> So your sub
> class (a derivation of your base class) needs to call into its super
class,
> it is done with a super() call. The super() call is (and must be) the
first
> statement in the subclass's overriding method.
> </snip>
>
> Thats just for constructors. Ive got a few places where a subclass
overrides
> a normal method in which it checks something and if a certain condition is
> met it does some special behaviour, but if not makes a call to the
> superclass implementation of the method in order to proceed as normal.
Thats
> using the syntax super.doSomething(), while super() is what you use if
your
> in a constructor - in that case it must be the first statement, but for
> normal methods it can be called anytime.
>
> -----Original Message-----
> From: Brian Hickey [mailto:bhickey@r-effects.com]
> Sent: Wednesday, December 04, 2002 20:26
> To: Struts Users Mailing List
> Subject: Re: abstract class
>
>
> Mohan,
>
> Two different behaviors is what you wish then you need to derive from a
> concrete base class. Abstract classes are more likely to provide
conformance
> to an architecture or signature template.
>
> In Struts, folks usually inherit from the Action class to create certain
> behaviors. If you need to super() to a base class, you are correct, it
> cannot be an abstract class. I would suggest that it shouldn't be in most
> any case, but I don't know your architecture.
>
> It is also early and I am not sure of your terminology. A base class is a
> super class (standard inheritance diagrams display that way) and
subsequent
> derivations are known as subclasses. When you want to use the code in a
> super class from your sub class, you user super() to call it. So your sub
> class (a derivation of your base class) needs to call into its super
class,
> it is done with a super() call. The super() call is (and must be) the
first
> statement in the subclass's overriding method.
>
> All of this seems too easy, so I am sure I have completely missed the
point.
>
> Brian
>
>
> ----- Original Message -----
> From: "Mohan Radhakrishnan" <Mo...@hclcomnet.co.in>
> To: "Struts Users Mailing List" <st...@jakarta.apache.org>
> Sent: Wednesday, December 04, 2002 5:47 AM
> Subject: abstract class
>
>
> > Hi,
> >
> >    If an action has two different behaviours then it is advised to use
an
> > abstract method in the base class that the sub-action can override.
> >
> >    Our base action's perform method has to pass control to a sub
action's
> > method for the varying behavior. But if we use an abstract method then
the
> > action cannot be instantiated.
> >
> >  How is this usually done?
> > Thanks,
> > mohan
> >
> > --
> > To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> >
> >
>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


RE: abstract class

Posted by Andrew Hill <an...@gridnode.com>.
<snip>
So your sub
class (a derivation of your base class) needs to call into its super class,
it is done with a super() call. The super() call is (and must be) the first
statement in the subclass's overriding method.
</snip>

Thats just for constructors. Ive got a few places where a subclass overrides
a normal method in which it checks something and if a certain condition is
met it does some special behaviour, but if not makes a call to the
superclass implementation of the method in order to proceed as normal. Thats
using the syntax super.doSomething(), while super() is what you use if your
in a constructor - in that case it must be the first statement, but for
normal methods it can be called anytime.

-----Original Message-----
From: Brian Hickey [mailto:bhickey@r-effects.com]
Sent: Wednesday, December 04, 2002 20:26
To: Struts Users Mailing List
Subject: Re: abstract class


Mohan,

Two different behaviors is what you wish then you need to derive from a
concrete base class. Abstract classes are more likely to provide conformance
to an architecture or signature template.

In Struts, folks usually inherit from the Action class to create certain
behaviors. If you need to super() to a base class, you are correct, it
cannot be an abstract class. I would suggest that it shouldn't be in most
any case, but I don't know your architecture.

It is also early and I am not sure of your terminology. A base class is a
super class (standard inheritance diagrams display that way) and subsequent
derivations are known as subclasses. When you want to use the code in a
super class from your sub class, you user super() to call it. So your sub
class (a derivation of your base class) needs to call into its super class,
it is done with a super() call. The super() call is (and must be) the first
statement in the subclass's overriding method.

All of this seems too easy, so I am sure I have completely missed the point.

Brian


----- Original Message -----
From: "Mohan Radhakrishnan" <Mo...@hclcomnet.co.in>
To: "Struts Users Mailing List" <st...@jakarta.apache.org>
Sent: Wednesday, December 04, 2002 5:47 AM
Subject: abstract class


> Hi,
>
>    If an action has two different behaviours then it is advised to use an
> abstract method in the base class that the sub-action can override.
>
>    Our base action's perform method has to pass control to a sub action's
> method for the varying behavior. But if we use an abstract method then the
> action cannot be instantiated.
>
>  How is this usually done?
> Thanks,
> mohan
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: abstract class

Posted by Brian Hickey <bh...@r-effects.com>.
Mohan,

Two different behaviors is what you wish then you need to derive from a
concrete base class. Abstract classes are more likely to provide conformance
to an architecture or signature template.

In Struts, folks usually inherit from the Action class to create certain
behaviors. If you need to super() to a base class, you are correct, it
cannot be an abstract class. I would suggest that it shouldn't be in most
any case, but I don't know your architecture.

It is also early and I am not sure of your terminology. A base class is a
super class (standard inheritance diagrams display that way) and subsequent
derivations are known as subclasses. When you want to use the code in a
super class from your sub class, you user super() to call it. So your sub
class (a derivation of your base class) needs to call into its super class,
it is done with a super() call. The super() call is (and must be) the first
statement in the subclass's overriding method.

All of this seems too easy, so I am sure I have completely missed the point.

Brian


----- Original Message -----
From: "Mohan Radhakrishnan" <Mo...@hclcomnet.co.in>
To: "Struts Users Mailing List" <st...@jakarta.apache.org>
Sent: Wednesday, December 04, 2002 5:47 AM
Subject: abstract class


> Hi,
>
>    If an action has two different behaviours then it is advised to use an
> abstract method in the base class that the sub-action can override.
>
>    Our base action's perform method has to pass control to a sub action's
> method for the varying behavior. But if we use an abstract method then the
> action cannot be instantiated.
>
>  How is this usually done?
> Thanks,
> mohan
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>