Ich lese gerade Dart Sprache Spezifikation und erkunden eine neue interessante Sprache. As Dart language specification says: Dart hat implicit interfaces
. Das bedeutet, dass jeder class
auch ein interface
ist. Also, wenn ich etwas Verhalten einer anderen Klasse implementieren möchte, ist implements
Klausel die einzige, die ich brauche.Understanding 'implementiert' und 'mit' in Dart
Außerdem unterstützt Dart mixins
. Damit können wir die Implementierung von Methoden aus einer anderen Klasse mit dem Schlüsselwort with
übernehmen.
So gegeben, dass, wenn eine abstrakte Klasse A definiert Methode a() wie:
abstract class A {
void a();
}
und zwei weitere konkrete Klasse B definiert Verfahren ein(), aber implementiert Klasse nicht A wie:
class B {
void a() {
print("I am class B");
}
}
und Klasse C implementiert Klasse A mit Mixin B wie:
class C extends Object with B implements A {
...
}
Hier habe ich einige questio haben ns darüber. Wenn eine Klasse die Schnittstelle implementiert und auch Mixin verwendet, das über eine Methodenimplementierung mit demselben Methodennamen verfügt; würde es nicht cycling inheritance
möglich machen? Wie wird das Verhalten von class C
sein? Muss es implementiert werden a()
oder es wird implizit von mixin B
implementiert werden?
Ich lerne gerade Dart und Konzepte wie Mixins sind mir sehr fremd. Kann mir jemand helfen, meine Fragen zu beantworten?
Hoffe, dass es Ihnen nichts ausmacht, aber behoben Ihre Proben, um korrekt zu sein Dart –
@ArggentiApparatus Also, wenn ich Mixin verwenden mit Klausel ist diese Klasse beschränkt Objekt zu erweitern? Ich habe es irgendwo gelesen, aber ich habe es nicht verstanden. Kannst du bitte etwas über deine Bearbeitung ausarbeiten? –
Sie haben geschrieben: Klasse C implementiert A mit B {...} 'Die korrekte Syntax lautet' Klasse Klassenname erweitert Basisklasse mit Mixinclass implementiert Schnittstelle {...} '. * Jede * Klasse kann erweitert werden. Es gibt Einschränkungen für Klassen, die jedoch als Mixins verwendet werden können. Ich schlage vor, den Abschnitt "Sprachreise" im Unterricht zu lesen, um besser zu verstehen –