Чем отличаются эти две статьи (полиморфизм, PHP)?
код в статьях не отличается ничем.
за каким чертом автор №2 решил выпендриться, и объяснить "Что такое полиморфизм на самом деле" с использованием абсолютно такого же примера - останется тайной на века.
лично меня ни один толком не убедил.
попробую привести собственный пример:<?php 

// базовый класс публикации
// имеет свойства для заголовка и тела
// умеет отдавать контент в простейшем виде
class Publication {
  protected $_header;
  protected $_body;
  
  public function __construct($header, $body) {
    $this->_header = $header;
    $this->_body = $body;
  }

  public function getContent() {
    return 
      '<h1>' . $this->_header .  '</h1>' . 
      '<p>' . $this->body . '</p>';
  }
}

// статья в дополнение имеет еще свойство для имени автора
// конструктор переопределен для задания имени автора
// метод getContent переопределен, чтобы дописывать под заголовком статьи имя автора
class Article extends Publication {
  protected $_author;
  
  public function __construct($header, $body, $author) {
    parent::__construct($header, $body);
    
    $this->_author = $author;
  }

  public function getContent() {
    return 
      '<h1>' . $this->_header .  '</h1>' . 
      '<br /><br/ >'. 
      'By ' . $this->author . 
      '<br /><br/ >'. 
      '<p>' . $this->body . '</p>';
  }
}

// объявление переопределяет только метод getContent 
// заворачивает вывод в блок определенного класса - так объявление заметнее
// но сам контент генерируется родительским методом
class Announcement extends Publication {
  public function getContent() {
    return 
      '<div class="announcement">' . 
        parent::getContent() . 
      '</div>';
  }
}

// а вот короткая новость, например, не переопределяет метод getContent
// он ей подходит как есть
// она только с данными немного шаманит
class ShortNews extends Publication {
  public function __construct($header, $body) {
    $this->_body = substr($header, 0, 31);
    $this->_body = substr($body, 0, 255);
  }
}

// а вот и принтер
// принтер печатает публикации
// ему пофиг, какие именно - хоть короткую новость мы его попросим напечатать, хоть объявление
// он знает, что у любой публикации есть метод getContent, результат которого можно напечатать
// потому что объекты классов статья/объявление/короткая новость - они одновременно и объекты класса публикация
// это и есть полиморфизм
class PublicationPrinter {
  public static function print(Publication $publication) {
    print($publication->getContent());
  }
}
У второго автора батхерт не на тему "что такое полиморфизм", а "о чем статья".
Он посчитал, что приведенные примеры и нить повествования больше относятся к наследованию, и у читателя не получится различить эти два понятия. 
Сам же последний пример - это нормальная демонстрация полиморфизма, в обоих случаях.