AndryG, может быть вот так будет проще понять:
var Родитель = function(фамилия)
{
    this.фамилия = фамилия || 'безымянный';
    this.public_method = function()
    {
        alert('Public method')
    }
};
var Ребёнок = function()
{
    this.public_method = function()
    {
        alert('Переопределённый public method')
    };
    this.скажи_чей_ты = function()
    {
        alert('Моя фамилия: ' + this.фамилия)
    }
};
//Класс "Родитель" является предком для класса "Ребёнок",
//у которого переопределён метод public_method. 
Ребёнок.prototype = new Родитель('Батькович');
var test = new Ребёнок();
test.скажи_чей_ты(); // => "Моя фамилия: Батькович"
test.public_method(); // => "Переопределённый public method"
alert(test.фамилия); // => "Батькович"
Что ещё можно почитать про ООП в JS:
ООП в JavaScript
Основы и заблуждения насчёт JavaScript