Herencia usando Get y Set

Curso de JS: 9. Herencia (POO) - YouTube

Herencia 

Cuando hablamos de herencia en programación no nos referimos precisamente a que algún familiar lejano nos ha podido dejar un fortuna, ya nos gustaría.
En realidad se trata de uno de los pilares fundamentales de la programación orientada a objetos.Es el mecanismo por el cual una clases permite heredar las características (atributos y métodos) de otra clase.

Terminología importante:

1)Superclase: la clases cuyas características se heredan se conoce como superclase ( o una clase base o una clase principal).

2)Subclase: la clase que hereda la otra clase se conoce como subclase( o una clase derivada, clase extendida o clase hija). La subclase puede agregar sus propios campos y métodos, ademas de los campos y métodos de la superclase.

3)Reutilización: la herencia respalda el concepto de reutilización, es decir cunado queremos crear una clase nueva y ya hay una clase que incluye parte del código que queremos, podemos derivar nuestra nueva clase de la clases existente. Al hacer esto estamos reutilizando los campos/atributos y métodos de la clase ya existente.

Uso del Get y Set

El Get nos ayuda a obtener los valores de la herencia y el Set nos ayuda a definir o asignar esos valores.

A continuación te presento un ejemplo el que podrás notar el uso de Get y Set.

class Animal {
    constructor(nombreedad) {
        this.nombre = nombre;
        this.edad = edad;
        this.animales = [];
    }
    get saludar() {
        return "hola, soy " + this.nombre;
    };
    get hacerSonido() {
        return "hace sonido";
    };
    set nombreAnimales() {
        animeles.push(nombre);
    }
};
class Perro extends Animal {
    constructor(nombreedadapodocolor_pelaje) {
        super(nombreedad);
        this.apodo = apodo;
        this.color_pelaje = color_pelaje
    };
    get hacerSonido() {
        return "Wao Wao Wao";
    }
};
class Gato extends Animal {
    constructor(nombreedadapodocolor_pelaje) {
        super(nombreedad);
        this.apodo = apodo;
        this.color_pelaje = color_pelaje
    };
    get hacerSonido() {
        return "myu";
    }
};
/*var miPerro= new Perro("boby",5,"manchas","cafe");
console.log(miPerro.saludar());
console.log(miPerro.hacerSonido());*/
var miGato = new Gato("minino"2"patas""blanco");
/*console.log(miGato.saludar());
console.log(miGato.hacerSonido());*/
console.log(miGato.saludar);

Comentarios