Ответ 1
Polymorphism может быть достигнуто путем переопределения. Короче говоря, полиморфизм относится к способности объекта предоставлять разные виды поведения (использовать разные реализации) в зависимости от его собственной природы. В частности, в зависимости от его положения в иерархии классов.
Переопределение метода - это когда метод, определенный в суперклассе или интерфейсе, переопределяется одним из его подклассов, таким образом изменяя/заменяя поведение обеспечивает суперкласс. Решение о вызове реализации или другой динамически принимается во время выполнения, в зависимости от объекта, из которого вызывается операция. Обратите внимание, что подпись метода остается неизменной при переопределении.
Перегрузка метода не связана с полиморфизмом. Это относится к определению различных форм метода (обычно путем приема разных номеров или типов параметров). Это можно рассматривать как статический полиморфизм. Решение о вызове реализации или другое принимается во время кодирования. Обратите внимание, что в этом случае подпись метода должна измениться.
Перегрузка операторов - это другая концепция, связанная с полиморфизмом, которая ссылается на способность определенного оператора, зависящего от языка, вести себя по-разному на основе тип его операндов (например, +
может означать конкатенацию с String
и добавление с числовыми операндами).
Пример в Википедии является довольно показательным.
Также могут быть полезны следующие связанные вопросы: