However, the following would work:

UString ustring = new UString("foo");
ustring.capitalise();

if UString had:

...extends StringUtils...

public void capitalise() {
    this.myStr = capitalise(this.myStr);
}

Not sure why someone would bother though :) Just as easy to do
StringUtils.capitalise in there.

Hen

On Tue, 29 Jul 2003, Gary Gregory wrote:

> Ah, but not really... ;-)
>
> A subclass cannot override methods that are declared static in the
> superclass. In other words, a subclass cannot override a class method. A
> subclass can /hide/ a static method in the superclass by declaring a static
> method in the subclass with the same signature as the static method in the
> superclass. Overriding only applies to instance methods, class methods
> behave differently (ah, longing for Smalltalk). A class method can be
> /shadowed/ by a subclass but not overridden (not to be confused with method
> overloading of course ;-)
>
> Here is a fun experiment with statics that always comes and bites you in the
> you-know-where:
>
> package test;
>
> class SubC extends SuperC {
>       static String hi() {
>               return "I am Sub";
>       }
> }
>
> class SuperC extends Object {
>       static String hi() {
>               return "I am Super";
>       }
> }
>
> public class TestSuperStatic {
>
>       public static void main(String[] args) {
>               SuperC a = new SuperC();
>               SubC b = new SubC();
>               SuperC c = b;
>               System.out.println(a.hi() + ", " + a.getClass());
>               System.out.println(b.hi() + ", " + b.getClass());
>               System.out.println(c.hi() + ", " + c.getClass());
>       }
>
> }
>
> Can you guess what gets printed out? :-)
>
> (and no cheating by running the code!)
>
> Gary
>
> -----Original Message-----
> From: Stephen Colebourne [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 29, 2003 14:30
> To: Jakarta Commons Developers List
> Subject: Re: [lang] DEVELOPERS-GUIDE.html
>
> In this use case, everybody uses UString, so you can effectively override.
>
> If you code the same method in the 'subclass', and refer to it using the
> subclass class then it will be called.
>
> Stephen
>
> ----- Original Message -----
> From: "Gary Gregory" <[EMAIL PROTECTED]>
> > When you do that, do remember that you cannot override static methods in
> the
> > same way that you can with instance methods.
> >
> > Gary
> >
> > -----Original Message-----
> > From: Stephen Colebourne [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, July 29, 2003 14:07
> > To: Jakarta Commons Developers List
> > Subject: Re: [lang] DEVELOPERS-GUIDE.html
> >
> > Because I want to create a subclass of StringUtils.
> >
> > Use case:
> > I curently have a string utility class named UString.
> > I plan to change that to extend StringUtils once 2.0 is released.
> > (Because I'll get lots of extra methods for free)
> > But I can only do that if StringUtils is not final.
> >
> > Stephen
> >
> >
> > ----- Original Message -----
> > From: "Henri Yandell" <[EMAIL PROTECTED]>
> > To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]>
> > Sent: Tuesday, July 29, 2003 7:46 PM
> > Subject: Re: [lang] DEVELOPERS-GUIDE.html
> >
> >
> > >
> > > Question just came up on [io].
> > >
> > > Why do we not make our XxxUtil classes final again? :) Anyone remember
> or
> > > should I trawl through the mail from last year?
> > >
> > > Hen
> > >
> > > On Tue, 29 Jul 2003 [EMAIL PROTECTED] wrote:
> > >
> > > > Plus1
> > > > Stephen
> > > >
> > > > >  from:    Henri Yandell <[EMAIL PROTECTED]>
> > > > >  date:    Tue, 29 Jul 2003 14:00:23
> > > > >  to:      [EMAIL PROTECTED]
> > > > >  subject: Re: [lang] DEVELOPERS-GUIDE.html
> > > > >
> > > > >
> > > > > Just noticed that DEVELOPERS-GUIDE.html doesn't mention whether our
> > > > > XxxUtils class should be final or not. I'm pretty sure we ended up
> > making
> > > > > them not final. Anyone object to this before I add a line to the
> > guide?
> > > > >
> > > > > Hen
> > > > >
> > > > >
> > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to