Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Acceso protegido

10/25
Recursos

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

¿Qué es protected?

Básicamente, es la forma de heredar propiedades y métodos.

Es similar a como funciona una propiedad o método privado, pero nos permite realizar herencia.

Sintaxis

class FatherClass {
	constructor (
		protected property1: dataType,
		propertyN: dataType
	) {
		statemenst
	}
}

class ChildClass extends FatherClass {
		constructor (properties and Inheritedproperties) {
			super(Inheritedproperties)
			statemenst
		}
}

protected a diferencia de private, permite heredar propiedades de una clase padre a sus clases hijas

muy bien 😃.

Para llamar métodos de la clase padre con super no se puede hacer si las funciones son arrow functions.

aaah no entendia porque yo no tenia ni un tipo de problema con las variables privadas y es que yo puse setters y getters para todo asi que realmente no accedia a la propiedad privada directamente sino por una propiedad publica el get name

My code

export class Animal {
    protected _name: string;
    protected _sound: string;

    constructor(name: string, sound: string) {
        this._name = name;
        this._sound = sound;
    }

    get name(): string {
        return this._name;
    }

    set name(name: string) {
        this._name = name;
    }

    get sound(): string {
        return this._sound;
    }

    set sound(sound: string) {
        this._sound = sound;
    }

    move() {
        console.log('I am moving');
    }

    greet() {
        console.log(this._sound);
    }
}

class Mammals extends Animal {
    protected _race: string;

    constructor(name: string, sound: string, race: string) {
        super(name, sound);
        this._race = race;
    }

    // override -> overwrite
    move() {
        super.move();
        console.log(`I am ${this._name}`)
    }

    get race(): string {
        return this._race;
    }

    set race(race: string) {
        this._race = race;
    }
}

const cat = new Animal('kity', 'miauuuuu');
cat.move();
cat.greet();

const dog = new Mammals('Look', 'Guauuuu', 'Pitbul');
dog.greet();
dog.move();

😱