practicas con herencia de clases

herencia de clases con robo de constructor y redefinicion de metodos.

by Fabian Allel

JavaScript

function ClassAnimal(nombre, numPatas, tieneCola, tieneAlas, color, fechaNacimiento, sonido, posicion){
    var that=this;
    that.nombre=nombre;
    var _numPatas=numPatas;
    var _tieneCola=tieneCola;
    var _tieneAlas=tieneAlas;
    that.color=color;
    that.fechaNacimiento=fechaNacimiento;
    that.sonido=sonido;
    that.posicion=posicion;
    //privado
    this.getNumPatas=function(){
        alert(_numPatas);
    };
        
    this.getTieneCola=function(){
        alert(_tieneCola);
    };
        
    this.getTieneAlas=function(){
        alert(_tieneAlas);
    };
    
    ClassAnimal.prototype.andar=function(){
        this.posicion++;
    };
    ClassAnimal.prototype.correr=function(){
        this.posicion+=3;
    };
    ClassAnimal.prototype.hablar=function(){
        alert(this.sonido);
    };
}

//herencia
function ClassGato(esPeludo, nombre, numPatas, tieneCola, tieneAlas, color, fechaNacimiento, sonido, posicion){
    ClassAnimal.call(this,nombre, numPatas, tieneCola, tieneAlas, color, fechaNacimiento, sonido, posicion);
    this.esPeludo=esPeludo;
    ClassGato.prototype.correr=function(){
        this.posicion+=5;
    };
}
ClassGato.prototype = new ClassAnimal();
ClassGato.prototype.constructor = ClassGato;

function ClassTortuga(nombre, numPatas, tieneCola, tieneAlas, color, fechaNacimiento, sonido, posicion){
    ClassAnimal.call(this,nombre, numPatas, tieneCola, tieneAlas, color, fechaNacimiento, sonido, posicion);
    ClassTortuga.prototype.correr=function(){
        this.posicion+=1;
    };
}
ClassTortuga.prototype = new ClassAnimal();
ClassTortuga.prototype.constructor = ClassTortuga;
//herencia

var coleccion=[];
var perro= new ClassAnimal('LulĂş', 4, true, false, 'Blanco con negro', new Date(2007,9,28,10,10,10), 'Guau', 0);
var gato= new ClassAnimal('Gotsi', 5, true, false, 'Negro', new Date(2007,9,28,10,10,10), 'Miau', 0);
var gato1=new ClassGato(true, 'Benito', 4, true, false, 'Amarillo', new Date(2007,9,28,10,10,10), 'Miau2',...