Что такое абстракция, эффективно изложено в ссылке, опубликованной Tesserex.На ваш взгляд профессора о добавлении дополнительной нагрузки на программу, это на самом деле довольно верно.Однако нагрузка в современных системах незначительна.Подумайте об этом с точки зрения того, что на самом деле происходит, когда вы вызываете метод: каждый дополнительный метод, который вы вызываете, требует добавления ряда дополнительных структур данных в стек и последующей обработки возвращаемых значений, также помещенных в стек.Так, например, для вызова
c = add(a, b);
, который выглядит примерно так:
public int add(int a, int b){
return a + b;
}
, необходимо поместить два целых числа в стек для параметров и затем добавить еще одно целое в стек для возвращаемого значения,Однако взаимодействие с памятью не требуется, если оба значения уже есть в регистрах - это простой вызов одной инструкции.Учитывая, что операции с памятью намного медленнее, чем операции с регистрами, вы можете видеть, откуда взялась идея снижения производительности.
В конечном счете, каждый вызов метода, который вы делаете, немного увеличивает нагрузку на вашу программу.Однако, как отмечает @Tesserex, в большинстве современных компьютерных систем ничтожно мало, и, как отмечает @ Эндрю Барбер, этот компромисс, как правило, полностью затмевается увеличением эффективности работы программистов.