El lenguaje de programación Ruby tiene un par de maneras de combinar los métodos de dos clases. Las clases son colecciones de métodos relacionados y miembros de datos . Dos clases pueden combinar sus métodos utilizando el incluir o ampliar declaraciones. Ambas declaraciones están especializados para un propósito diferente y lograr cosas diferentes . Métodos de la clase
Extender añade métodos módulos especificados como métodos de clase a la clase de destino . Los métodos de clase están disponibles para todas las instancias de la clase de destino . Eso significa que todos los objetos creados sobre la base de la clase de destino tienen acceso a los métodos de cualquier clase que se extiende. Por lo tanto , es una manera de extender la más universal de incluir métodos en una clase, ya que afecta a todas las instancias de esa clase.
Métodos de instancia
Incluya añade métodos módulos especificados como métodos de instancia a la clase de destino . Los métodos de instancia están disponibles sólo para la instancia específica de la clase de destino . Cualquier otra clase del mismo tipo no tienen acceso a los métodos de la clase se incluye , a menos que también tiene el método include se invoca en él.
Variable Acceso
clase A de destino tiene acceso a las variables de cualquier otra clase que se ha incluido . Extender no proporciona este acceso.
Pública frente a la privada
Incluir es un método privado , y extender es un método público . Esto significa que incluyan deben invocarse dentro de un cuerpo de la clase .