Спадкування - це коли клас походить від існуючого класу. Отже, якщо у вас є Personклас, то у вас є Studentклас, який розширюється Person, Student успадковує всі речі, які Personмає. Є деякі деталі навколо модифікаторів доступу, які ви вводите на поля / методи в Person, але це основна ідея. Наприклад, якщо у вас увімкнено приватне поле Person, воно Studentне відображатиметься, оскільки його приватні та приватні поля не видно підкласам.
Поліморфізм стосується того, як програма вирішує, які методи вона повинна використовувати, залежно від того, який тип речі він має. Якщо у вас є a Person, який має readметод, і у вас є a, Studentякий розширюється Person, який має власну реалізацію read, який метод викликається, визначається для вас часом виконання, залежно від того, чи є у вас Personабо a Student. Це стає трохи хитро, але якщо ви робите щось подібне
Person p = new Student();
p.read();
метод зчитування на Стьюденті викликається. Ось поліморфізм у дії. Ви можете виконати це завдання, тому що a Student є Person , але час виконання досить розумний, щоб знати, що фактичний тип Studentp є .
Зауважте, що деталі відрізняються між мовами. Наприклад, ви можете зробити спадщину в JavaScript, але це зовсім інше, ніж це працює в Java.