Якщо я скажу вам, що у мене є собака, ви можете сміливо припустити, що у мене є домашня тварина.
Якщо я скажу вам, що у мене є домашня тварина, ви не знаєте, чи є ця тварина собакою, це може бути кішка або, можливо, навіть жираф. Не знаючи додаткової інформації, ви не можете впевнено припустити, що у мене є собака.
так само похідний об'єкт є об'єктом базового класу (оскільки це підклас), тому на нього може вказувати покажчик базового класу. Однак об'єкт базового класу не є похідним об'єктом класу, тому його неможливо присвоїти покажчику похідного класу.
(Скрип, який ви зараз почуєте, є аналогією розтягування)
Припустимо, ви зараз хочете купити мені подарунок для мого вихованця.
За першим сценарієм ви знаєте, що це собака, ви можете купити мені повідець, всі задоволені.
За другим сценарієм я не сказав вам, що таке мій улюбленець, тому, якщо ви все одно збираєтеся купити мені подарунок, вам потрібно знати інформацію, яку я вам не розповідав (або просто здогадайтеся), ви купуєте мені повідець виявляється у мене справді була собака, всі задоволені.
Однак якщо у мене насправді була кішка, то ми тепер знаємо, що ви зробили невдале припущення (кидок) і у вас нещасна кішка на повідку (помилка виконання).
