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