Вопросы с тегом «multiple-inheritance»

Функция некоторых объектно-ориентированных языков программирования, в которой класс может наследовать поведение и функции более чем одного суперкласса или базового класса.

956
Что такое миксин и почему они полезны?

В « Программировании Python » Марк Лутц упоминает «миксины». Я из C / C ++ / C # фона, и я не слышал этот термин раньше. Что такое миксин? Читая между строк этого примера (который я связал, потому что он довольно длинный), я предполагаю, что это случай использования множественного наследования для...

889
Как Python super () работает с множественным наследованием?

Я довольно новичок в объектно-ориентированном программировании на Python, и у меня возникают проблемы с пониманием этой super()функции (новые классы стилей), особенно когда речь идет о множественном наследовании. Например, если у вас есть что-то вроде: class First(object): def __init__(self): print...

212
Множественное наследование в C #

Так как множественное наследование является плохим (это усложняет исходный код), C # не предоставляет такой шаблон напрямую. Но иногда было бы полезно иметь эту способность. Например, я могу реализовать отсутствующий шаблон множественного наследования, используя интерфейсы и три таких класса:...

175
Вызов родительского класса __init__ с множественным наследованием, каков правильный путь?

Скажем, у меня есть сценарий множественного наследования: class A(object): # code for A here class B(object): # code for B here class C(A, B): def __init__(self): # What's the right code to write here to ensure # A.__init__ and B.__init__ get called? Там две типичные подходы к письменной форме C«s...

168
Многократное наследование Java

В попытке полностью понять, как решить проблемы множественного наследования в Java, у меня есть классический вопрос, который мне нужно прояснить. Допустим , у меня есть класс Animalэто имеет вложенные классы Birdи Horseи мне нужно сделать класс , Pegasusкоторый простирается от Birdи Horseтак...

164
Как сделать класс Java, который реализует один интерфейс с двумя универсальными типами?

У меня общий интерфейс public interface Consumer<E> { public void consume(E e); } У меня есть класс, который использует два типа объектов, поэтому я хотел бы сделать что-то вроде: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void...

132
Множественное наследование / прототипы в JavaScript

Я подошел к моменту, когда мне нужно иметь какое-то рудиментарное множественное наследование в JavaScript. (Я здесь не для того, чтобы обсуждать, хорошая это идея или нет, поэтому, пожалуйста, оставьте эти комментарии при себе.) Я просто хочу знать, пытался ли кто-нибудь это с успехом (или нет) и...

127
Может ли интерфейс расширять несколько интерфейсов в Java?

Может ли интерфейс расширять несколько интерфейсов в Java? Этот код отображается в моей среде IDE и компилируется: interface Foo extends Runnable, Set, Comparator<String> { } но я слышал, что в Java запрещено множественное наследование. Почему для интерфейсов существует...

121
В чем именно заключается проблема множественного наследования?

Я вижу, как люди все время спрашивают, следует ли включать множественное наследование в следующую версию C # или Java. Люди C ++, которым посчастливилось обладать этой способностью, говорят, что это все равно, что дать кому-то веревку, чтобы в конце концов повеситься. Что с множественным...

115
Почему множественное наследование запрещено в Java или C #?

Я знаю, что в Java и C # множественное наследование запрещено. Во многих книгах прямо говорится, что множественное наследование недопустимо. Но это можно реализовать с помощью интерфейсов. Ничего не обсуждается, почему это запрещено. Кто-нибудь может сказать мне, почему это...

97
Как виртуальное наследование решает «ромбовидную» (множественное наследование) неоднозначность?

class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Я...

88
Objective-C множественное наследование

У меня есть 2 класса, один из которых включает метод A, а другой - метод B. Итак, в новом классе мне нужно переопределить методы methodA и methodB. Итак, как мне добиться множественного наследования в объективе C? Я немного запутался в синтаксисе....

88
Java - конфликт имен методов в реализации интерфейса

Если у меня есть два интерфейса, оба совершенно разных по своему назначению, но с одинаковой сигнатурой метода, как мне сделать класс, реализующий оба, без необходимости писать один метод, который служит для обоих интерфейсов, и писать некоторую запутанную логику в методе реализация, которая...

83
Являются ли значения по умолчанию в JDK 8 формой множественного наследования в Java?

Новая функция, входящая в JDK 8, позволяет добавлять к существующему интерфейсу, сохраняя двоичную совместимость. Синтаксис похож на public interface SomeInterface() { void existingInterface(); void newInterface() default SomeClass.defaultImplementation; } Таким образом, для всех существующих...