Clases abstractas

Una clase abstracta no puede ser instanciada.
Las clases abstractas se suelen utilizar como base para crear una jerarquía en la que todas las clases comparten una parte de los atributos y métodos.
En JSimpleClass una clase abstracta es aquella que carece de constructor.


function Car(){
	var status = "off";
	this.model = "";
	this.shutDown = function(){
		status = "on";
	};
	this.shutUp = function(){
		satus = "off";
	};
	this.getStatus = function(){
		return status;
	};

};

var Car = Class.create("Car",Car);

var Fiat = Class.extend("Fiat",Car,function(){
		this.brand = "Fiat";
		this.$$constructor = function(ml){
			this.model = ml || this.model;
		};

});

var Mercedes = Class.extend("Mercedes",Car,function(){
		this.brand = "Mercedes";
		this.$$constructor = function(ml){
			this.model = ml || this.model;
		};
});

var car1 = new Fiat("Bravo");
car1.shutDown();
alert(car1.getStatus());// on

var car2 = new Mercedes("S700");
alert(car2.getStatus());// off

var car3 = new Car();
try{
	alert(car3.getSatus());
}
catch(e){
	alert("error: " + e.description);//error: .............
};

Si intentamos crear una instancia de una clase abstracta, el resultado será un instancia vacía.