Ответы пользователя по тегу ООП
  • Объясните что такое полиморфизм простыми словами ?

    torrie
    @torrie
    Всё знаю, всё умею
    www.cyberguru.ru/web/html/javascript-introduction-...
    ..
    
    //Конструктор родительского класса
    function Animal(name)
    {
      this.name = name;
    }
    
    Animal.prototype.speak = function()
    {
      alert(this.name + " says:");
    }
    
    //Конструктор унаследованного класса "Dog"
    function Dog(name)
    {
      Animal.call(this, name);
    }
    
    Dog.prototype.speak = function()
    {
      Animal.prototype.speak.call(this);
      
      alert("woof");
    }
    
    //Конструктор унаследованного класса "Cat"
    function Cat(name)
    {
      Animal.call(this, name);
    }
    
    Cat.prototype.speak = function()
    {
      Animal.prototype.speak.call(this);
      
      alert("miaow");
    }
    
    ..

    Если вызовем метод speak задан в прототипе, а использовать мы его можем как от собаки, так и от кошки. Получим действия прототипа и затем переопределенное исполнение метода для каждого наследуемого элемента.
    var d = new Dog("Fido");     //Создает экземпляр Dog
    d.speak();                   //Вызывает функцию speak() класса Dog
     
    var c = new Cat("Lucy");     //Создает экземпляр Cat
    c.speak();                   //Вызывает функцию speak() класса Cat


    Будет "Fido says: woof" и "Lucy says: meow"
    Ответ написан
    3 комментария