EL Fri, 26 Jan 2007 03:16:39 +0900 Yukihiro Matsumoto <matz / ruby-lang.org> escrigué: > Hi, > > In message "Re: Class & modifiers modifiers" > on Fri, 26 Jan 2007 01:13:25 +0900, Miquel <ktalanet / yahoo.es> > writes: > > |> public. I don't recommend to override protected method though. > | > |Why not? > > Because protected methods are called only from subclass of defining > class. That means overriding changes the restriction scope of the > method. > > |You might have a protected method in a module which has no code or > |only an exception (something like an abstract method in Java/C#) and > has |a different behaviour in the different classes which include it. > In this |case it must have been overriden. > | > |What do you think about this? > > As far as current protected behavior remains, I'd recommend to prepare > separate method to override in the subclass. > Excuse me if I'm getting boring but I don't know if I explained myself well, here is an example: module Shape def name #raise a not implemented method. end def printName() puts name end end class Square include Shape def name return 'Square' end end class Circle include Shape def name return 'Circle' end end I know that it could be written, for example, as a attr_reader and set it in the initialize, but this is the idea I want to express (I think its so useful). Or maybe you want to say that it's better to code an intermidiate class between de module and the classes (or even instead of the module) and declare there the "abstract" method? Sorry, but I'm so used to Java and C#. Kind regards Miquel > matz. > ______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y miles desde 1 cñÏtimo por minuto. http://es.voice.yahoo.com