Запитання з тегом «polymorphism»

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

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

17
Чи Список <Dog> підклас Список <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і обидва визначення здавалося абсолютно однаковими. Мені було просто цікаво, яка ОСНОВНА різниця була для мого власного розуму. Я знаю, що існує ряд подібних питань до цього, але жодного я …


11
Перейти до реалізації інтерфейсу в Eclipse IDE
Ви знаєте, як у Eclipse, натискання F3на метод призведе вас до його декларації? Ну у мене є метод, який є частиною інтерфейсу; натискання F3на це, природно, відводить мене до інтерфейсу декларування. Очевидно, є об'єкт, що реалізує цей інтерфейс, і саме тут метод реально реалізований. Я хочу, коли натискаю F3, перейти …

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

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

7
Поліморфізм у С ++
AFAIK: 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.