Разница между перегрузкой и переопределением

Перегрузка против Переопределения

Перегрузка и переопределение являются особенностями большинства языков программирования. Перегрузка - это функция, которая позволяет создавать несколько методов с одинаковыми именами в одном классе, но отличаться друг от друга с точки зрения типа ввода и типа вывода функции. Перегрузка методов обычно связана со статическими языками программирования, которые обеспечивают проверку типов в вызовах функций. Скорее всего, они связаны с VB, .Net, C ++, D, Java и т. Д. Переопределение является основным навыком, используемым для объектно-ориентированного программирования, и выполняется, когда пользователь переопределяет метод, который уже был определен в существующем или родительском классе. В этом методе программирования сценарии кодируются для выполнения конкретных задач, позволяя сценарию, написанному в нижнем или подклассе, реализовать метод или набор инструкций, которые уже были изложены в любом из родительских или вышестоящих классов..

В компьютерном программировании перегрузка возникла из-за того, что метод имеет более одного определения в одной области и имеет одно и то же имя, но с другой сигнатурой. Реализации метода имеют одинаковое имя, потому что они будут выполнять аналогичные задачи. Перегрузка также идентифицируется из-за ее распознавания как случая полиморфизма, в котором некоторые или все операторы могут иметь разные реализации, которые зависят от указанных типов аргументов. Переопределение зависит от наличия функции базового класса для ее появления. Языковая функция Overriding, которая позволяет дочернему классу реализовать метод, который уже используется одним из его суперклассов или родительских классов, позволяет методу подкласса назначать то же имя, список параметров и возвращаемый тип или сигнатуру, что переопределенный метод, используемый в суперклассе. имеет.

Перегрузка считается практичной, поскольку она позволяет программистам написать несколько разных методов с одинаковым именем. Перегрузка может иметь некоторые последствия для языка, потому что во время выполнения процессор меняет имя всех перегруженных методов. Это решается во время компиляции. Хотя переопределение - это полиморфизм, разработанный на основе неявного первого параметра, который разрешается во время выполнения..

Резюме:
Термин перегрузка обычно ассоциируется со статически программируемыми языками, а переопределение приобрело популярность в объектно-ориентированном программировании..
Метод в классе с тем же именем метода с другой сигнатурой обозначается как метод перегрузки. Переопределение, известное как метод в классе, имеющем то же имя метода и те же аргументы / подпись.
Перегрузка разделяет однородные отношения между методами, доступными в том же классе, тогда как при переопределении создается связь между методом суперкласса и методом подкласса..
Перегрузка позволяет наследовать от суперкласса.
В переопределении метод подкласса заменяет суперкласс.
Перегрузка должна иметь другую сигнатуру метода, тогда как переопределение должно выделять одну и ту же сигнатуру.