Ich bin neu in Go und ich frage mich, wie ich eine Struktur ähnlich abstrakten Klassen & Methoden in Java implementieren kann. In Java würde ich Folgendes tun:Äquivalenz von abstrakten Klassen/Methoden (Java) in Google Go
abstract class A{
static method1(){
...
method2();
...
}
abstract method2();
}
class B extends A{
method2(){
...
}
}
class C extends A{
method2(){
...
}
}
Ich weiß über Schnittstellen und Strukturen. Ich könnte eine Schnittstelle und dann eine Struktur erstellen, um Methode1 zu implementieren. Aber was ist mit Methode2? Ich weiß, dass ich eine Schnittstelle in eine andere und auch eine Struktur als ein Feld einer anderen Struktur einbetten kann. Aber ich sehe keine Möglichkeit, meine Struktur mit diesen Methoden zu implementieren.
Die einzige Lösung, die ich sehe, ist Methode 1 sowohl in Klasse B als auch in Klasse C zu implementieren. Gibt es keinen anderen Weg?
Hinweis: natürlich ist es in meinem Fall nicht nur eine Methode. Außerdem habe ich eine Hierarchie abstrakter Klassen und möchte eigentlich nicht alles in die 'Unterklassen' verschieben.
Die Beispiele, die ich im Internet gefunden habe, sind meistens mit nur einer Methode pro Schnittstelle. Es wäre toll, wenn einer von euch mir hier einen Hinweis geben könnte! Vielen Dank.
Wie diese Antwort, und möchte hinzufügen, dass, wenn Sie Struktur-Schnittstelle, wie eine abstrakte Klasse benötigen würden, als Sie das gleiche Prinzip wie @ANisus geschrieben verwenden können, aber Getter-Methoden hinzufügen. So können Sie Strukturparameter wie '' 'Model.getName''' aufrufen, wobei' '' Model''' genau die Struktur enthält, die eine von Ihnen erstellte Schnittstelle auflöst. – Altenrion