Другие языки программирования и технологии
Полиморфизм это когда в наследование добавляешь всякую хрень? c#
типа того.. вижу ты уже начинаешь смекать.. ха-ха
Полиморфизм - это вообще не про наследование. А про то, что в разных классах один и тот же метод выполняет разные действия. А вот возможность использования метода данного объекта (и в целом объекта) в данном месте кода определяется не наследованием, а контрактом.
В C++ контракт реализуется только через наследование, в C# - через наследование или интерфейсы, в Go - через интерфейсы или композицию...
В C++ контракт реализуется только через наследование, в C# - через наследование или интерфейсы, в Go - через интерфейсы или композицию...
Сергей Подлипалин
полиморфизм = перегрузка (функций/методов или операторов)
Это генетический сбой когда в одной особи присутствуют гены двух или более особей.
нене смори все оч просто
берешь интерфейс или абстрактный класс и в нем называешь пустой метод
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/Стратегия_(шаблон_проектирования)
берешь интерфейс или абстрактный класс и в нем называешь пустой метод
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/Стратегия_(шаблон_проектирования)
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
ПОЛИМОРФИЗМ = ПЕРЕГРУЗКА (функций/методов или операторов)
В чистом Си перегрузка операторов тоже есть, также как и во многих других языках. Поэтому тут имеется ввиду пользовательская перегрузка; инструменты языка, позволяющие делать пользователю (программисту) это самостоятельно.
В чистом Си перегрузка операторов тоже есть, также как и во многих других языках. Поэтому тут имеется ввиду пользовательская перегрузка; инструменты языка, позволяющие делать пользователю (программисту) это самостоятельно.
Похожие вопросы
- Как полиморфизм модефецирует принцип наследования?
- ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
- Основные принципы ООП: инкапсуляция, полиморфизм, наследование Объясните пожалуйста простыми словами?
- Инкапсуляция, полиморфизм Обясните по проще что такое инкапсуляция и полиморфизм?
- Вопрос про полиморфизм в С++.
- Можете объяснить мне в простых терминах ну или с коротким примером Полиморфизм?
- Учусь програмировать на C++ по книге "C++ для чайников".Проблема.
- Как розделять Жесткий Диск на C и D. и можно ли когда розделён уже добавлять с одного в другой?
- Ещё тупой вопрос по C++ :)
- объясните глупой что такое полиморфизм в с++.скока всего прочла и так и не могу понять((((