Вопросы с тегом «polymorphism»

В информатике полиморфизм - это функция языка программирования, которая позволяет единообразно обрабатывать значения разных типов данных.

17
Когда использовать виртуальные деструкторы?
У меня есть четкое понимание большинства ОО-теорий, но меня смущает одна вещь - виртуальные деструкторы. Я думал, что деструктора всегда называют независимо от того, что и для каждого объекта в цепочке. Когда вы собираетесь сделать их виртуальными и почему?

17
Является ли List <Dog> подклассом List <Animal>? Почему дженерики Java не являются неявно полиморфными?
Я немного озадачен тем, как дженерики Java обрабатывают наследование / полиморфизм. Предположим следующую иерархию - Животное (родитель) Собака - Кот (Дети) Итак, предположим, у меня есть метод doSomething(List&lt;Animal&gt; animals). По всем правилам наследования и полиморфизма я бы предположил, что a List&lt;Dog&gt; есть a, List&lt;Animal&gt;а a List&lt;Cat&gt; есть a, List&lt;Animal&gt;и поэтому …


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

4
Почему переопределенная функция в производном классе скрывает другие перегрузки базового класса?
Рассмотрим код: #include &lt;stdio.h&gt; class Base { public: virtual void gogo(int a){ printf(" Base :: gogo (int) \n"); }; virtual void gogo(int* a){ printf(" Base :: gogo (int*) \n"); }; }; class Derived : public Base{ public: virtual void gogo(int* a){ printf(" Derived :: gogo (int*) \n"); }; }; int …

17
В чем основное различие между наследованием и полиморфизмом?
Сегодня мне поставили этот вопрос в конце экзамена по открытой книге модуля, и я потерял себя. Я читал, Head first Javaи оба определения казались абсолютно одинаковыми. Мне просто интересно, какова ГЛАВНАЯ разница для моего собственного разума. Я знаю, что есть ряд подобных вопросов, но ни один из них, которые я …


5
Повторно вызвать исключение с другим типом и сообщением, сохраняя существующую информацию
Я пишу модуль и хочу иметь единую иерархию исключений для исключений, которые он может вызывать (например, наследование от FooErrorабстрактного класса для всех fooособых исключений модуля). Это позволяет пользователям модуля перехватывать эти конкретные исключения и при необходимости обрабатывать их отдельно. Но многие исключения, вызванные модулем, возникают из-за другого исключения; например, сбой …

11
Перейти к реализации интерфейса в Eclipse IDE
Вы знаете, как в Eclipse нажатие F3на метод приводит к его объявлению? У меня есть метод, который является частью интерфейса; щелкнув F3по нему, я естественным образом попадаю в интерфейс объявления. Очевидно, что существует объект, реализующий этот интерфейс, и именно здесь метод фактически реализуется. Когда я нажимаю F3, я хочу перейти …

12
В Java, как я могу вызвать метод базового класса из переопределяющего метода в производном классе?
У меня есть два класса Java: B, который расширяет другой класс A, следующим образом: class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } Я хотел бы позвонить A.myMethod()от B.myMethod(). Я из мира …

7
Полиморфизм в C ++
НАСКОЛЬКО МНЕ ИЗВЕСТНО: C ++ предоставляет три различных типа полиморфизма. Виртуальные функции Перегрузка имени функции Перегрузка оператора В дополнение к трем вышеупомянутым типам полиморфизма существуют и другие виды полиморфизма: во время выполнения время компиляции специальный полиморфизм параметрический полиморфизм Я знаю, что полиморфизм времени выполнения может быть достигнут с помощью виртуальных …


12
Как вызвать 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() { Console.WriteLine("Called from Derived."); base.Say(); } } class SpecialDerived : Derived { public override void Say() { Console.WriteLine("Called …
127 c#  polymorphism 

5
Частный виртуальный метод в C ++
В чем преимущество создания виртуального частного метода в C ++? Я заметил это в проекте C ++ с открытым исходным кодом: class HTMLDocument : public Document, public CachedResourceClient { private: virtual bool childAllowed(Node*); virtual PassRefPtr&lt;Element&gt; createElement(const AtomicString&amp; tagName, ExceptionCode&amp;); };


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.