Suche…


Einführung

Eigenschaften sind strukturelle Konstruktionsobjekte in der Sprache Groovy. Traits ermöglichen die Implementierung von Schnittstellen. Sie sind mit statischer Typprüfung und Kompilierung kompatibel. Traits verhalten sich als Schnittstellen zu Standardimplementierungen und Status. Die Deklaration eines Merkmals erfolgt mit dem Merkmalsmerkmal . ---------- Traits-Methoden unterstützen nur öffentliche und private Methoden.

Grundlegende Verwendung

Ein trait ist ein wiederverwendbarer Satz von Methoden und Feldern, die einer oder mehreren Klassen hinzugefügt werden können.

trait BarkingAbility {
    String bark(){ "I'm barking!!" }
}

Sie können wie normale Schnittstellen mit dem Schlüsselwort implements :

class Dog implements BarkingAbility {}
def d = new Dog()
assert d.bark() = "I'm barking!!"

Sie können auch verwendet werden, um Mehrfachvererbung zu implementieren (Vermeidung von Rautenproblemen).

Hunde können seinen Kopf kratzen, also:

trait ScratchingAbility {
    String scratch() { "I'm scratching my head!!" }
}

class Dog implements BarkingAbility, ScratchingAbility {}
def d = new Dog()
assert d.bark() = "I'm barking!!"
assert d.scratch() = "I'm scratching my head!!"

Mehrfachvererbung Problem

Klasse kann mehrere Merkmale implementieren. Wenn ein Merkmal eine Methode mit derselben Signatur wie ein anderes Merkmal definiert, liegt ein Problem mit mehreren Vererbungen vor. In diesem Fall wird die Methode aus dem zuletzt angegebenen Merkmal verwendet:

trait Foo {
  def hello() {'Foo'}
}
trait Bar {
  def hello() {'Bar'}
}

class FooBar implements Foo, Bar {}

assert new FooBar().hello() == 'Bar'


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow