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]