Herencia

class Construccion{

    static edificios : number = 0;

    constructor(private pisos:number){
        Construccion.edificios++;
    }
    impuestos() : number{
        return this.pisos = 3;
    }
    get pisos():number{
        return this._pisos    
    }
    set pisos(pisos:number):number{
        this._pisos = pisos;    
    }
    static edificiosCount():number{
        return 1;    
    }
}

class Residencial extends Construccion{

    constructor(_pisos: number, private _numeroHabitantes: number){
        super(_pisos);//Super obliga a ejecutarse el primer constructor;
    }
    impuestos(): number{
        return this.pisos * 1;    
    }
    get numeroHabitantes():number{
        return this._numeroHabitantes;
    }
}

let oficinasCF = new Construccion(2);
let oficinasGoogle = new Construccion(10);
let oficinasFaceBook = new Construccion(5);
let casaUriel = new Residencial(2,1);

console.log(casaUriel.impuestos())
console.log(Construccion.edificioscount());