A linguagem de programação Ruby tem um par de maneiras de combinar os métodos de duas classes. Classes são coleções de métodos relacionados e membros de dados . Duas classes podem combinar os seus métodos usando as instruções incluem ou estender . Ambas as declarações são especializados para uma finalidade diferente e realizar coisas diferentes. Métodos de classe
Estender acrescenta especificados métodos de módulos como métodos de classe para a classe alvo. Métodos de classe estão disponíveis para todas as instâncias da classe alvo. Isso significa que todos os objetos criados com base na classe de destino têm acesso aos métodos de qualquer classe que é estendida. Portanto, estender é uma forma mais universal de incluir métodos em uma classe, uma vez que afeta todas as instâncias da classe. Métodos
Instância
Incluir acrescenta especificados métodos de módulos métodos de instância para a classe alvo. Métodos de instância estão disponíveis apenas para a instância específica da classe alvo. Qualquer outra classe do mesmo tipo não têm acesso aos métodos da classe incluído , a menos que ele também tem o método incluem invocado nele.
Acesso às variáveis
Uma classe alvo tem acesso às variáveis de qualquer outra classe que tenha sido incluído . Estender não fornece este acesso .
Pública contra Privada
Incluir é um método privado, e estender é um método público . Isso significa que incluem deve ser chamado dentro de um corpo de classe.