miércoles, 9 de febrero de 2011

Implementación herencia y polimorfismo

Semana 3
Taller Programación Orientada a Objetos


Antes de mostrar el código implementando la herencia en javascript de mi proyecto, creo que sería mejor explicar la manera en que se crea la herencia en javascript ya que es diferente a los lenguajes mas comunes de POO.

Retomando el ejemplo anterior de instrumentos, en el que se tiene una clase padre llamada Instrumentos, con dos métodos tocar y romper, y dos clases hijas llamadas, guitarra y batería, que heredan los métodos de tocar y romper, la manera de implementar el código sería:


function instrumento (){//Esta es la clase padre
this.tocar = tocar;
this.romper = romper;
}
function guitarra (){//Clase hija
}
guitarra.prototype = new instrumento();//Se implementa LA HERENCIA

function bateria (){//Clase HIja
this.romper = romperBateria;
}
bateria.prototype = new instrumento();//Se implementa LA HERENCIA

function tocar (){
document.write(“Estamos tocando musica
”);
}

function romper (){
document.write(“Eso lo pagas tu
”);
}

function romperBateria (){
document.write(“Rompiendo bateria, por favor espere.
”);
}


Y mi código, esta parte es la primer clase padre, que llamé Dibujo:


function Dibujo (){//Clase PADRE
var color;//Atributos a heredar por FigGeom, Libre y Recta
var intensidad;
var cor_x;
var cor_y;
function transparencias();//Metodos a heredar
function mov_raton();
}

function FigGeom (){//Clase HIJA que sera padre de "elipse", "rectangulos", "poligonos"
var relleno; //atributos a heredar por Elipse Rectangulos Poligonos
var contorno;
}
FigGeom.prototype = new Dibujo();//aqui se forma la herencia

function Linea (){//Clase HIJA que puede ser padre de "recta" y "curva"
var grosor;//atributos a heredar por Curva y Recta
}
Linea.prototype = new Dibujo();//aqui se forma la herencia

function Libre (){//Clase HIJA
}
Libre.prototype = new Dibujo();//aqui se forma la herencia



Y en esta otra parte muestro las clases padres, que anteriormente eran hijas:


function Elipse (){//Clase HIJA de FigGeom
}

Elipse.prototype = new FigGeom();//aqui se forma la herencia


function Rectangulos (){//Clase HIJA de FigGeom
}

Rectangulos.prototype = new FigGeom();//aqui se forma la herencia


function Poligonos (){//Clase HIJA de FigGeom
}

Poligonos.prototype = new FigGeom();//aqui se forma la herencia


function Curva (){//Clase HIJA de Linea
}

Curva.prototype = new Linea();//aqui se forma la herencia


function Recta (){//Clase HIJA de Linea
}

Recta.prototype = new Linea();//aqui se forma la herencia



Esta es solo una parte del código que implementaré para el proyecto.

1 comentario: