3.201 cursos gratis
6.233.243 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Programación de juegos para móviles con J2ME > Herencia

Programación de juegos para móviles con J2ME

Autor: Alberto García Serrano
Curso:  4,52/5 4,52/5 (83 opiniones) |11910 alumnos|Fecha publicación: 07/09/2004
Capítulos del curso

Capítulo 5:

 Herencia

No sé de color tienes los ojos, pero puedo asegurar que del mismo color que alguno de tus ascendientes. Este mecanismo biológico fue descrito por Mendel (armado con una buena dosis de paciencia y una gran cantidad de guisantes) y se llama herencia. La herencia se transmite de padres a hijos, nunca al revés. En Java la herencia funciona igual, es decir, en un sólo sentido. Mediante la herencia, una clase hija (llamada subclase) hereda los atributos y los métodos de su clase padre.

Imaginemos -volviendo al ejemplo del coche- que queremos crear una clase llamada CochePolicia, que además de acelerar y frenar pueda activar y desactivar una sirena. Podríamos crear una clase nueva llamada CochePolicia con los atributos y clases necesarios tanto para frenar y acelerar como para activar y desactivar la sirena. En lugar de eso, vamos a aprovechar que ya tenemos una clase llamada Coche y que ya contiene algunas de las funcionalidades que queremos incluir en CochePolicia. Veámoslo sobre un ejemplo.

Class CochePolicia extends Coche {

 // variables
 int sirena;

 // métodos
 void sirenaOn() {
   sirena=1;
 }
 void sirenaOff() {
   sirena=0;
 }
}
Lo primero que nos llama la atención de la declaración de la clase es su primera línea. Tras el nombre de la clase hemos añadido la palabra extends seguido de la clase padre, es decir, de la cual heredamos los métodos y atributos. La clase CochePolicia posee dos atributos, velocidad, que ha sido heredado y sirena, que ha sido declarada dentro de la clase CochePolicia. Con los métodos sucede exactamente igual. La clase hija ha heredado acelerar() y frenar(), además le hemos añadido los métodos sirenaOn() y sirenaOff(). Un objeto instancia de CochePolicia puede utilizar sin ningún problema los métodos acelerar() y frenar() tal y como hacíamos con los objetos instanciados de la clase Coche.

No es posible heredar de dos o más clases a la vez (al contrario que en C++). Esto se llama herencia múltiple, y suele conllevar más problemas que ventajas, así que los diseñadores de Java prefirieron no incluir esta característica.

Polimorfismo.- El polimorfismo es otra de las grandes característica de la POO. La palabra polimorfismo deriva de poli (múltiples) y del término griego morfos (forma). Es decir, múltiples formas.

Supongamos que queremos dotar al método frenar de más funcionalidad. Queremos que nos permita reducir hasta la velocidad que queramos. Para ello le pasaremos como parámetro la velocidad, pero también sería útil que frenara completamente si no le pasamos ningún parámetro. El siguiente código cumple estos requisitos.


// Declaración de la clase coche
class Coche {
 // Atributos de la clase coche
int velocidad;

 // Métodos de la clase coche
 void acelerar(int velocidad);
 void frenar() {
 // Ponemos a 0 el valor del atributo velocidad
 velocidad = 0;
}
 void frenar(int velocidad) {
 // Reducimos la velocidad
  if (velocidad < this.velocidad)
this.velocidad = velocidad;

 }
}

Como ves tenemos dos métodos frenar. Cuando llamemos al método frenar(), Java sabrá cual tiene que ejecutar dependiendo de si lo llamamos con un parámetro de tipo entero o sin parámetros. Esto que hemos hecho se llama sobrecarga de métodos. Podemos crear tantas versiones diferentes del método siempre y cuando sean diferentes. El constructor de una clase también puede ser sobrecargado. En el ejemplo, encontramos la palabra reservada this. Ésta se utiliza para indicar que a la variable que nos referimos es la de la clase, y no la que se ha pasado como parámetro. Hay que hacer esta distinción, ya que tienen el mismo nombre.

Capítulo siguiente - Estructuras de control
Capítulo anterior - Clases y Objetos
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 83 opiniones. Opina sobre este curso.

Descarga el PDF gratis

Cursos similares a Programación de juegos para móviles con J2ME


Cursos Valoración Alumnos Vídeo
Técnicas para el desarrollo de computación móvil (orientado a PDA)
Uno de los nuevos paradigmas en el desarrollo de proyectos informáticos es la computación móvil (computación Ubicua). Aquí se verá todo lo que involucra la creación de un... [31/03/06]
 4,33/5 1.307  
SQL
SQL (Structured Query Language) es un lenguaje de programación para acceder y manipular bases de datos. SQL surgió de un proyecto de IBM en el que investigaba e... [10/05/04]
 4,49/5 34.042  
Usabilidad web
La usabilidad es el principal elemento con el cual debe contar toda página Web. Yo defino Usabilidad como la capacidad de una aplicación de ser agradable, eficiente y fá... [17/07/06]
 4,25/5 1.751  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail