Aqui te pongo un ejemplo que hice para demostrar la herencia simple y sobreescritura de metodos
te daras cuenta que hice los Get's/Set's de los atributos de la clase, esto no es encesario, pues en JS no existe la visibilidad, pero bueno, son solo buenas costumbres que me ha dejado JAVA
Código PHP:
//superclase
function Persona(){
this.nombre;
this.edad;
this.sexo;
this.setNombre = function(nombre){
this.nombre = nombre;
}
this.setEdad = function(edad){
this.edad = edad;
}
this.setSexo = function(sexo){
this.sexo = sexo;
}
this.hablar = function(algo){
alert("Hablando: "+algo);
}
}
//clases que extienden de Persona
function Mexicano(){
this.idioma = "Español";
}
function Chino(){
this.color = "amarilla";
}
//haciendo la herencia
Mexicano.prototype = new Persona();
Chino.prototype = new Persona();
//sobrescritura de metodos
Mexicano.prototype.hablar = function(algo){
alert(this.nombre+" dice: "+algo);
}
//creando instancias
var mexicano = new Mexicano();
mexicano.setNombre("Crysfel");
mexicano.setEdad(22);
mexicano.setSexo("Masculino");
mexicano.hablar("Hola! me llamo "+mexicano.nombre+" y tengo "+mexicano.edad+" años");
mexicano.hablar("Viva Mexico!");
var chino = new Chino();
chino.hablar("hola, yo soy un chino! de piel "+chino.color);
have funnnnnnnn