Публикации по теме 'polymorphism'


Объектно-ориентированное программирование на простом английском языке
Если вы читаете этот пост, значит, возможно, вы похожи на меня. Вам легче понять абстрактные концепции, если вы можете связать их с конкретными идеями или объектами. Если это правда о вас, то вы попали в нужный пост. Без лишних слов, приступим. Что такое объектно-ориентированное программирование (ООП)? Объектно-ориентированное программирование - это парадигма программирования, которая требует от вас думать и моделировать свои программы как объекты реального мира. Вам необходимо..

Немного ООП-теории
Немного ООП-теории Отрывок из книги «Практическое программирование, третье издание» Пола Грайса, Дженнифер Кэмпбелл, Джейсона Монтохо. In this excerpt: * Encapsulation * Polymorphism * Inheritance Классы и объекты — два мощных инструмента программирования. Они позволяют хорошим программистам делать многое за очень короткое время, но с ними плохие программисты могут создать настоящий беспорядок. В этом разделе будут представлены некоторые основные теории, которые помогут..

Концепция объектно-ориентированного программирования
Введение До объектно-ориентированного программирования у нас было процедурное программирование, которое имело множество недостатков, таких как невозможность повторного использования кода во всей программе. По мере роста вашей программы вы создаете множество функций. Это создает такую ​​взаимозависимость между созданными вами функциями. Когда вы вносите изменения в функцию, другая функция тормозит. Объектно-ориентированное программирование пришло для решения этой и многих других..

Что такое полиморф?
Это должно быть хорошо знакомо любому, кто когда-либо писал код на объектно-ориентированном языке, таком как C ++, Java, C # и т. Д. Полиморфизм подтипов относится к классической иерархии типов, включающей наследование и отношения между объектами. Синтаксис, используемый в F # для обозначения таких отношений, требует некоторого привыкания: В качестве альтернативы вы можете объявить интерфейс Частным случаем полиморфизма подтипа является, по сути, размеченное объединение...

Что такое полиморфизм?
Полиморфизм — это способность объекта принимать множество форм. Наиболее распространенное использование полиморфизма в объектно-ориентированном программировании (ООП) происходит, когда ссылка на родительский класс используется для ссылки на объект дочернего класса. Любой объект Java, который может пройти более одного теста IS-A, считается полиморфным. В Java все объекты Java полиморфны, поскольку любой объект пройдет тест IS-A для своего типа и для класса Object. Собака ЕСТЬ-Животное..

Вопросы по теме 'polymorphism'

Оценка выражений и обход дерева с использованием полиморфизма? (аля Стив Йегге)
Этим утром я читал Steve Yegge: When Polymorphism Fails , когда наткнулся на вопрос, который его коллега задавал потенциальным сотрудникам, когда они приходили на собеседование в Amazon. В качестве примера полиморфизма в действии давайте...
6655 просмотров
schedule 04.06.2023

Полиморфизм против переопределения против перегрузки
В терминах Java, когда кто-то спрашивает: что такое полиморфизм? Будет ли приемлемым ответом перегрузка или переопределение ? Я думаю, здесь есть кое-что еще. ЕСЛИ у вас был абстрактный базовый класс, который определил метод без...
278776 просмотров

Полиморфная фабрика/getInstance() в Java
Я стремлюсь создать набор объектов, каждый из которых имеет уникальный идентификатор. Если объект с таким идентификатором уже существует, я хочу использовать существующий объект. В противном случае я хочу создать новый. Я стараюсь не использовать...
16181 просмотров

Наследование в Java - не удается найти конструктор символов
Я работаю над классом, который наследуется от другого класса, но я получаю сообщение об ошибке компилятора «Не удается найти конструктор символов Account ()». В основном то, что я пытаюсь сделать, это создать класс InvestmentAccount, который...
32720 просмотров
schedule 14.02.2023

Переопределение функции C ++
У меня есть три разных базовых класса: class BaseA { public: virtual int foo() = 0; }; class BaseB { public: virtual int foo() { return 42; } }; class BaseC { public: int foo() { return 42; } }; Затем я получаю от базы следующим...
40537 просмотров
schedule 10.04.2023

Почему перегрузка функций-членов неявного преобразования работает по типу возвращаемого значения, в то время как это не разрешено для обычных функций?
C++ не допускает полиморфизма для методов на основе их возвращаемого типа. Однако при перегрузке функции-члена неявного преобразования это кажется возможным. Кто-нибудь знает, почему? Я думал, что операторы обрабатываются как методы внутри....
1668 просмотров
schedule 21.09.2023

Какой метод .Equals() использовать
В этом вопросе . мы обнаружили, что в .NET 1.1 Array.IndexOf(array, value) искал элемент с value.Equals(arrayElement) == true в то время как .NET 2.0 изменил его для поиска элемента с arrayElement.Equals(value) == true Очевидно,...
169 просмотров
schedule 15.07.2022

C++ Коллекция экземпляров, реализующих чистый виртуальный класс
Я работаю на кроссплатформенном С++, и некоторые классы определены так: (сильно упрощено для этого примера) class ExampleBase { public: ExampleBase( int blah ) : blah_test(blah) { } virtual void DoSomething( ) = 0; private: int...
894 просмотров
schedule 06.05.2023

Почему это работает? Перегрузка метода + переопределение метода + полиморфизм
В следующем коде: public abstract class MyClass { public abstract bool MyMethod( Database database, AssetDetails asset, ref string errorMessage); } public sealed class MySubClass : MyClass { public override bool...
2968 просмотров
schedule 21.12.2023

Когда использовать перечисления, а когда заменить их классом со статическими членами?
Недавно мне пришло в голову, что следующее (примерное) перечисление... enum Color { Red, Green, Yellow, Blue } ... можно заменить, казалось бы, более типобезопасным классом: class Color { private Color() { }...
32386 просмотров
schedule 18.04.2022

Как вызвать base.base.method ()?
// Cannot change source code class Base { public virtual void Say() { Console.WriteLine("Called from Base."); } } // Cannot change source code class Derived : Base { public override void Say() {...
115298 просмотров
schedule 13.10.2023

Кастинг классы
У меня 2 класса: открытый класс ClassA открытый класс ClassB (из другого пространства имен): ClassA Я использую метод в ClassA public static ClassA Deserialize(string path) { ClassA classA; //classA=code... return classA; } Я...
356 просмотров
schedule 23.11.2022

Вопрос по дизайну (наследование, полиморфизм)
У меня есть вопрос о проблеме, с которой я борюсь. Надеюсь, вы можете терпеть меня. Представьте, что у меня есть класс Object, представляющий базовый класс иерархии физических объектов. Позже я наследую от него, чтобы создать классы Object1D,...
294 просмотров

Еще один вопрос, связанный с дизайном C++
Привет! Я пытаюсь найти некоторые оптимальные решения в шаблонах кодирования C++, и это один из моих вопросов, связанных с игровым движком . Взгляните на объявление игрового объекта (я удалил почти все, что не имеет отношения к вопросу) ....
284 просмотров
schedule 25.08.2022

Перегрузка общих неявных преобразований
У меня небольшая проблема со scala (версия 2.8.0RC1) с неявными преобразованиями. Всякий раз, когда импортируется более одного неявного преобразования, первое из них затеняется. Вот код, в котором проявляется проблема: // containers class...
352 просмотров
schedule 24.10.2023

Django: способ проверить, к какому классу относится общее отношение content_object?
В моем проекте есть класс NewsItem. Экземпляры NewsItem действуют как оболочка. Они могут быть связаны либо с экземпляром ArtWork, либо с экземпляром объявления. Вот как выглядит модель NewsItem: class NewsItem(models.Model): content_type...
503 просмотров
schedule 06.02.2022

Вызов переопределенного метода из ctor родительского класса
Я попытался вызвать переопределенный метод из конструктора родительского класса и заметил различное поведение в разных языках. C++  – вторит A.foo() class A{ public: A(){foo();} virtual void foo(){cout<<"A.foo()";} };...
7649 просмотров
schedule 15.07.2022

Рекомендации для C++ полиморфного бинарного интерфейса ввода-вывода с возможностью поиска
Я использовал std::istream и ostream в качестве полиморфного интерфейса для двоичного ввода-вывода с произвольным доступом в C++, но во многих отношениях он кажется неоптимальным: 64-битные поиски не переносимы и подвержены ошибкам из-за...
683 просмотров

Бывает ли ситуация, когда производный класс должен скрываться…?
Возможно, глупый вопрос, но если предположить, что base class A определяет virtual method V , есть ли когда-нибудь ситуация, когда derived class C имеет смысл скрыть A.V , объявив новый virtual method C.V с той же подписью, что и A.V :...
276 просмотров
schedule 26.04.2023

Есть ли причина скрывать унаследованные члены в интерфейсе?
Я понимаю, что класс, унаследованный от другого класса, может скрыть свойство с помощью ключевого слова new . Однако это скрывает конкретную реализацию свойства, поэтому я могу понять, как ее можно использовать. Есть ли практическая причина...
3152 просмотров
schedule 13.05.2023