Другие языки программирования и технологии

Полиморфизм это когда в наследование добавляешь всякую хрень? c#

типа того.. вижу ты уже начинаешь смекать.. ха-ха
ДЛ
Данил Латышев
66 693
Лучший ответ
Полиморфизм - это вообще не про наследование. А про то, что в разных классах один и тот же метод выполняет разные действия. А вот возможность использования метода данного объекта (и в целом объекта) в данном месте кода определяется не наследованием, а контрактом.

В C++ контракт реализуется только через наследование, в C# - через наследование или интерфейсы, в Go - через интерфейсы или композицию...
Олег Телюпа
Олег Телюпа
76 254
Сергей Подлипалин полиморфизм = перегрузка (функций/методов или операторов)
Это генетический сбой когда в одной особи присутствуют гены двух или более особей.
Роман Иванов
Роман Иванов
56 655
нене смори все оч просто
берешь интерфейс или абстрактный класс и в нем называешь пустой метод
public interface iTest {public void method();}
делаешь кучу его наследников где этот метод не пустой
public class myclass1:iTest {public void method() {кусок кода 1};}
public class myclass2:iTest {public void method() {кусок кода 2};}
public class myclass3:iTest {public void method() {кусок кода 3};}
дальше создаешь переменную родителя
MAIN
{
iTest a;

теперь можно вызывать на ней этот метод так как машина знает что он там есть
но вот какой именно ты подставишь она не знает
берешь такой и запихиваешь туда первый
a=new myclass1();
a.method();
выполнится кусок кода1
потом
a=new myclass2();
a.method();
ты вызвал тотже метод но уже выполнился кусок кода 2

тоесть ты переключаешься в одном месте а вызываешь в другом и машина не замечает подмены
}
это и есть полиморфизм
когда ты подобным образом заменяешь кучу условий то это шаблон проектирования стратегия
https://ru.wikipedia.org/wiki/Стратегия_(шаблон_проектирования)
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Николай Ручкин
Николай Ручкин
11 288
ПОЛИМОРФИЗМ = ПЕРЕГРУЗКА (функций/методов или операторов)

В чистом Си перегрузка операторов тоже есть, также как и во многих других языках. Поэтому тут имеется ввиду пользовательская перегрузка; инструменты языка, позволяющие делать пользователю (программисту) это самостоятельно.