Ein Merkmal einiger objektorientierter Computerprogrammiersprachen, in denen eine Klasse Verhaltensweisen und Merkmale von mehr als einer Oberklasse oder Basisklasse erben kann.
In " Programming Python " erwähnt Mark Lutz "Mixins". Ich komme aus C / C ++ / C # und habe den Begriff noch nicht gehört. Was ist ein Mixin? Wenn ich zwischen den Zeilen dieses Beispiels lese (auf das ich verlinkt habe, weil es ziemlich lang ist), gehe ich …
Ich bin ziemlich neu in der objektorientierten Programmierung von Python und habe Probleme, die super()Funktion (neue Stilklassen) zu verstehen, insbesondere wenn es um Mehrfachvererbung geht. Zum Beispiel, wenn Sie etwas haben wie: class First(object): def __init__(self): print "first" class Second(object): def __init__(self): print "second" class Third(First, Second): def __init__(self): super(Third, …
Da die Mehrfachvererbung schlecht ist (was die Quelle komplizierter macht), liefert C # ein solches Muster nicht direkt. Aber manchmal wäre es hilfreich, diese Fähigkeit zu haben. Zum Beispiel kann ich das fehlende Mehrfachvererbungsmuster mithilfe von Schnittstellen und drei Klassen wie diesen implementieren: public interface IFirst { void FirstMethod(); } …
Angenommen, ich habe ein Szenario mit Mehrfachvererbung: 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? Es gibt zwei typische Ansätze zum Schreiben C‚s …
Um zu verstehen, wie man die Mehrfachvererbungsprobleme von Java löst, habe ich eine klassische Frage, die geklärt werden muss. Nehmen wir an, ich habe eine Klasse, Animaldie Unterklassen hat, Birdund Horseich muss eine Klasse machen Pegasus, die sich von Birdund Horsenach Pegasussowohl einem Vogel als auch einem Pferd erstreckt. Ich …
Ich habe eine generische Schnittstelle public interface Consumer<E> { public void consume(E e); } Ich habe eine Klasse, die zwei Arten von Objekten verwendet, also möchte ich etwas tun wie: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void consume(Tomato t) { ..... } public void consume(Apple a) { ...... …
Ich bin an einem Punkt angelangt, an dem eine rudimentäre Mehrfachvererbung in JavaScript stattfinden muss. (Ich bin nicht hier, um zu diskutieren, ob dies eine gute Idee ist oder nicht. Bitte behalten Sie diese Kommentare für sich.) Ich möchte nur wissen, ob jemand dies mit (oder nicht) Erfolg versucht hat …
Kann eine Schnittstelle mehrere Schnittstellen in Java erweitern? Dieser Code scheint in meiner IDE gültig zu sein und wird kompiliert: interface Foo extends Runnable, Set, Comparator<String> { } aber ich hatte gehört, dass Mehrfachvererbung in Java nicht erlaubt war. Warum scheint es eine Ausnahme für Schnittstellen zu geben?
Ich kann Leute sehen, die ständig fragen, ob Mehrfachvererbung in der nächsten Version von C # oder Java enthalten sein soll. C ++ - Leute, die das Glück haben, diese Fähigkeit zu besitzen, sagen, dass dies so ist, als würde man jemandem ein Seil geben, um sich irgendwann aufzuhängen. Was …
Ich weiß, dass Mehrfachvererbung in Java und C # nicht zulässig ist. Viele Bücher sagen nur, Mehrfachvererbung ist nicht erlaubt. Es kann jedoch mithilfe von Schnittstellen implementiert werden. Es wird nichts darüber diskutiert, warum es nicht erlaubt ist. Kann mir jemand genau sagen, warum es nicht erlaubt ist?
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(); } Ich …
Ich habe 2 Klassen, eine enthält Methode A und die andere enthält Methode B. In einer neuen Klasse muss ich also die Methoden methodA und methodB überschreiben. Wie erreiche ich eine Mehrfachvererbung in Ziel C? Ich bin ein bisschen verwirrt mit der Syntax.
Wenn ich zwei Schnittstellen habe, die beide in ihren Zwecken sehr unterschiedlich sind, aber dieselbe Methodensignatur haben, wie kann ich eine Klasse dazu bringen, beide zu implementieren, ohne gezwungen zu sein, eine einzige Methode zu schreiben, die für beide Schnittstellen dient, und eine verschlungene Logik in die Methode zu schreiben …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.