// C:\JavaScriptYAngularJavaScript\C07\demostracion\herencia.ts 
// Definición de la clase vehiculo
class Vehiculo { 
    // Atributos 
    private _kilometraje: number; 
    private _propietario: string; 
    private _color: string; 
  
    // Getters 
    get kilometraje() { 
        return this._kilometraje; }
    get propietario() { 
        return this._propietario; 
    } 
    get color() { 
        return this._color; 
    } 
  
    // Setters 
    set kilometraje(km: number) { 
        this._kilometraje = km; 
    } 
    set propietario(nombre: string) { 
        this._propietario = nombre; 
    }   set color(color: string) { 
        this._color = color; 
    } 
 
  
    // El constructor
    constructor(kilometraje: number, propietario: string,  color: string) { 
        this._kilometraje = kilometraje; 
        this._propietario = propietario; 
        this._color = color; 
    } 
  
    // Los métodos
    avanzar(numeroDeMetros: number) { 
        this._kilometraje += numeroDeMetros; 
    } 
    retroceder(numeroDeMetros: number) { 
        this._kilometraje += numeroDeMetros; 
    } 
}
// 


//Coche heredado
class CocheHeredado  extends Vehiculo {} 
 

//Tractor heredado
class TractorCortacesped extends Vehiculo { 
    bajar(numDeCm: number) { 
        console.log("La hélice baja " + numDeCm + "  centímetros"); 
    } 
    subir(numDeCm: number) { 
        console.log("La hélice sube " + numDeCm + "  centímetros "); 
    } 
 } 
  
// let tesla = new CocheHeredado  (666, "García Julian", "Azul Marino");
 let tt = new TractorCortacesped (12, " García Julian ", "Verde"); 
 console.log("Kilometraje : " + tt.kilometraje); 
 tt.bajar(10); 
 tt.avanzar(0.1) 
 tt.subir(10); 
 tt.retroceder(0.1); 
 console.log("Kilometraje: " + tt.kilometraje);