Ну вот мне когда то приводили пример на котором я это всё осознавал:
Класс автомобиль:
свойства: макс скорость, грузоподъёмность, цвет, мощность...
методы: ремонтировать, перекрасить, ехать, остановаить
и т.д. и т.п.
Класс самосвал, наследник от класса автомобиль:
добавляются свойства: объём кузова
добавляются методы: поднять кузов, опустить кузов
и т.д. и т.п.
Вот на этом примере я когда в школе учился осознал штойта за зверь ООП.
Обычно гораздо удобней писать программы именно так.
А по поводу наследования - ты вот написал класс автомобиль со всеми методами и свойствами так мало того что тебе в другой программе не надо его делать заново - тебе не нужно заново писать этотже код когда ты захочешь сделать класс самосвал или легковушка и т.д.