groovy
egenskaper
Sök…
Introduktion
Egenskaper är konstruktionsobjekt på Groovy-språket. Funktioner möjliggör implementering av gränssnitt. De är kompatibla med statisk typkontroll och kompilering. Funktioner fungerar som gränssnitt med standardimplementeringar och tillstånd. Förklaring av ett drag är att använda drag- nyckelordet. ---------- Täckningsmetoder omfattar endast offentliga och privata metoder.
Grundläggande användning
En trait
är en återanvändbar uppsättning metoder och fält som kan läggas till en eller flera klasser.
trait BarkingAbility {
String bark(){ "I'm barking!!" }
}
De kan användas som vanliga gränssnitt med hjälp av sökord för implements
:
class Dog implements BarkingAbility {}
def d = new Dog()
assert d.bark() = "I'm barking!!"
De kan också användas för att genomföra flera arv (att undvika diamantemission).
Hundar kan skrapa i huvudet, så:
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!!"
Flera arvsproblem
Klassen kan implementera flera drag. Om en egenskap definierar metod med samma signatur som en annan egenskap, finns det ett problem med flera arv. I så fall används metoden från det senast deklarerade draget :
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow