Diferencia entre revisiones de «Herencia (informática)»

Contenido eliminado Contenido añadido
m Revertido a la revisión 29337576 hecha por Diegusjaimes. (TW)
Línea 75:
 
* Las clases que heredan propiedades de otra clase pueden servir como clase base de otras.
• Las clases derivadas o subclases proporcionan comportamientos especializados a partir de los elementos comunes que hereda de la clase base. A través del mecanismo de herencia los programadores pueden reutilizar el código de lasuperclase tantas veces como sea necesario.
• Los programadores pueden implementar las llamadas superclases abstractas, que definen comportamientos genéricos. Las clases abstractas definen e implementan parcialmente comportamientos, pero gran parte de estos comportamientos no se definen ni se implementan totalmente. O sea que otros programadores pueden hacer uso de estas superclases detallando esos comportamientos con subclases especializadas. El fín de una clase abstracta es servir de modelo base para la creación de otras clases derivadas, pero cuya implantación depende de las características particulares de cada una de ellas.
 
== TiposEstereotipos de herencia ==
* [[Herencia simple]]: Un objeto puede extender las características de otro objeto y de ningún otro, es decir, que solo puede heredar o tomar atributos de un solo padre o de una sola clase.
 
 
* [[Herencia múltiple]]: Un objeto puede extender las características de uno o más objetos, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseñadores de lenguajes. Algunos de ellos han preferido no admitir la herencia múltiple por las posibles coincidencias en nombres de métodos o datos miembros. Por ejemplo [[C++]], [[Python]] permiten herencia múltiple, mientras que [[Lenguaje de programación Java|Java]], [[Lenguaje de programación Ada|Ada]] y [[C sharp|C#]] sólo permiten herencia simple.
 
Tipos de herencia de clases
 
Existen dos tipos de herencia:
 
* [[Una herencia por especialización]]:
es la que se realiza cuando necesitamos crear una clase nueva que disponga de las mismas características que otra pero que le añada funcionalidades. Por ejemplo si tenemos una clase que genera un botón simple, y necesitamos crear un botón que sea igual que el anterior pero que además añada un efecto al ser clicado.
 
* [[La herencia por generalización]]
es la que realizamos cuando tenemos muchas clases que comparten unas mismas funcionalidades y por homogeneizar las partes comunes se decide crear una clase que implemente toda esa parte común y se dejan solo las partes especificas en cada clase. Por ejemplo si tenemos clases para dibujar formas geométricas todas ellas
 
disponen de las mismas propiedades (un color de fondo, color de linea, etc..), todas estas características pueden estar en una clase general de la que hereden todas las clases concretas, evitando tener que escribir todo ese código común en todas ellas.
 
[[Categoría:Programación orientada a objetos]]