Curso C# con Mono – Herencia

Siguiendo con características propias de los lenguajes de alto nivel con orientación a objetos, llegamos a la herencia.

¿Qué es la herencia?

En programación orientada a objetos, la herencia es el mecanismo básico para crear nuevas clases (hijas o derivadas), basándonos en clases anteriores (a la que llamaremos padre, base o superclase). La relación es similar a la que se produce en muchas situaciones de la vida cotidiana, por ejemplo en el campo de la biología en las relaciones padre-hijo.

Gracias a este mecanismo, podemos basarnos en clases anteriores, para crear nuevas clases sobre trabajo ya hecho, de forma que extendemos la funcionalidad de la clase padre hacia un campo nuevo, sin tener que volver a reescribir todo el contenido de la misma.

Ejemplos

Hay multitud de casos de este tipo. Por ejemplo, la clase padre excepción, provee unos métodos y atributos generales para todas las excepciones posibles. De ella derivan excepciones concretas, por ejemplo de división entre cero, que además de los métodos y atributos ya existentes, añaden funcionalidad extra, pero reutilizando toda la funcionalidad de la clase padre.

Otro ejemplo clásico es el de los controles de una interfaz gráfica. La clase control es la padre de todo un abanico de clases hijo. La clase control tiene por ejemplo la situación (todos los controles tienen situación) pero cada clase hijo aporta nuevas funcionalidades (por ejemplo, sus propios eventos).

Implementación

Veremos la implementación en C# con un ejemplo concreto. Ya que están tan de moda los vehículos eléctricos, vamos a implementar una serie de clases, con herencia, que reflejen la siguiente realidad:

  • Clase padre: motor, tendrá las características propias de toda clase de motores, gestionaremos potencia (entero en kW) y par (decimal en Nm)
  • Clase hijo: eléctrico, contendrá información exclusiva de los motores eléctricos, intensidad (entero en amperios), potencial (entero en voltios)
  • Clase hijo: de combustión interna, gestionará información de este tipo de motores. Cilindrada (entero en cc.), número de cilindros (entero) y emisiones de CO2 (decimal en gr/km)

public class Motor{ int potencia; decimal par; public int Potencia { get { return this.potencia; } set { potencia = value; } } public decimal Par { get { return this.par; } set { par = value; } } } public class Electrico : Motor{ int intensidad; int potencial; public int Intensidad { get { return this.intensidad; } set { intensidad = value; } } public int Potencial { get { return this.potencial; } set { potencial = value; } } } public class CombustionInterna : Motor{ int cilindrada; int cilindros; public int Cilindrada { get { return this.cilindrada; } set { cilindrada = value; } } public int Cilindros { get { return this.cilindros; } set { cilindros = value; } } } read more

Leer más » 8 Comentarios

Burocracia

Leer más » 6 Comentarios

Egg Window Manager

José Expósito, estudiante en ingeniería informática, acaba de publicar la primera versión de su último proyecto de software libre: Egg Window Manager. EggWM es, como su nombre indica, un gestor de ventanas escrito en C++ haciendo uso de las librerías Qt. Por ahora el gestor de ventanas, aunque muy estable, carece de la funcionalidad que cabría esperar de este tipo de software, es por eso que el autor solicita colaboración de desarrolladores que quieran participar en el proyecto.

Los objetivos principales del gestor de ventanas, por orden de prioridad son: read more

Leer más » 8 Comentarios

Tecla de Windows en el teclado de Ubuntu. WTF?

¿Alguien me lo puede explicar? Esta mañana entrando en la Ubuntu Store me he dado cuenta de que el teclado de la marca, recientemente publicado, incluye la tecla de Windows.

Muchos os preguntaréis que la tecla de Windows o Super es necesaria o que no estaría bien eliminarla, pero esa no es la cuestión, soy poseedor de un netbook, un Asus Eee 901, y este sí incluye la tecla Super pero sin el logo de Windows (este laptop viene sin Windows preinstalado). Lo que me sorprende es que una marca como Ubuntu incluya un logo tan despreciable en un producto que vende en su tienda. read more

Leer más » 14 Comentarios

El podcast de Linux Hispano – #048 – Linux en esta nueva década

¡Hola a todos!

Acaba de lanzarse el cuadragésimo octavo número de El podcast de Linux Hispano, un podcast sobre Linux y Software Libre.

En este nuevo episodio trataré de explicar, desde mi punto de vista, los aspectos que tiene que mejorar Linux en esta nueva década. También como curiosidad hablaré sobre las personas más importantes que hicieron posible la WWW así como otras noticias de actualidad. Y por último indicar también que a partir de ahora el reproductor en línea reproducirá archivos ogg. Para poder escuchar el podcast mediante el reproductor necesitas las últimas versiones de los navegadores como Firefox o Chromium. read more

Leer más » 5 Comentarios

Feliz Año 2011

Desde Linux Hispano os deseamos a todos un muy feliz año 2011, para vosotros, los vuestros y el software libre. De forma muy breve, ¿qué espero personalmente del 2011 en lo que a software libre se refiere?

Una realidad: Android

Si hay algo que está claro, es que Android seguirá subiendo y subiendo de forma imparable gracias al enorme apoyo que está teniendo desde muchas compañías hardware. ¿Quién sabe si a lo largo de este 2011 hasta Nokia se apunta al carro?

El crecimiento constante: Ubuntu
Desde 2004 el crecimiento de esta distribución, tanto dentro de las distribuciones Linux, como en comparación con el resto del mercado de los sistemas operativos, está siendo imparable. En 2011 esta tendencia seguirá y esperemos que se cree algún revulsivo para que ésta y otras distribuciones comiencen a subir de forma mucho más rápida. read more

Leer más » 2 Comentarios

Instalar Ubuntu en HTC HD2

Si el otro día comentábamos cómo instalar Ubuntu en un smartphone Samsung Galaxy, hoy veremos cómo hacerlo sobre una HTC HD2, y usando la reciente interfaz Unity.

El port de Ubuntu para HTC, la Ubuntu 0.3 para HTC HD2, utiliza Ubuntu 10.10 con la reciente interfaz Unity (Mutter), ofreciendo mayor rendimiento y estabilidad, así como un núcleo actualizado que proporciona una gran mejora en la vida de la batería.

Si somos ese tipo de usuarios atrevidos y deseamos obtener más información acerca de la instalación, guías paso a paso y los enlaces de descarga para llevar a cabo la instalación sobre nuestro dispositivo HTC HD2, os ofrecemos el siguiente enlace desde el foro de XDA developers. Descarga de Ubuntu 0.3 para HTC HD2 desde Hotfile. read more

Leer más » 2 Comentarios

Top 10 año 2010 – Linux Hispano

Queda muy poco para que el año termine, prácticamente horas y siguiendo una idea que he visto en otros blogs amigos como Ubuntips, voy a mostraros el Top 10 de las entradas únicas, no secciones, más visitas en Linux Hispano a lo largo de este año.

Cómo montar un servidor con Ubuntu (manual completo) Portal antiguo

Habilita los USB en Virtual Box en 5 simples pasos read more

Leer más » 1 Comentario

Recursos

Leer más » 9 Comentarios

Temas hijos en WordPress

Cuando tenemos un blog montado con WordPress, a pesar de la variedad de temas disponibles tanto en el repositorio oficial como en otros medios, al final siempre nos gusta hacerle una serie de modificaciones, ya sea para traducir algo o cambiar unos colores. read more

Leer más » 4 Comentarios