在Groovy中,可以使用lambda表达式创建抽象类引用。下面是一个示例:
abstract class Animal {
abstract void makeSound()
}
def animalRef = { Animal animal -> animal.makeSound() }
class Dog extends Animal {
void makeSound() {
println "Woof!"
}
}
class Cat extends Animal {
void makeSound() {
println "Meow!"
}
}
def dog = new Dog()
def cat = new Cat()
animalRef(dog) // 输出:Woof!
animalRef(cat) // 输出:Meow!
在上面的示例中,我们定义了一个抽象类Animal
,其中包含一个抽象方法makeSound()
。然后,我们使用lambda表达式创建了一个抽象类引用animalRef
,该引用接受一个Animal
对象作为参数,并调用其makeSound()
方法。
接下来,我们定义了Dog
和Cat
两个具体的子类,它们分别实现了makeSound()
方法。
最后,我们创建了一个Dog
对象和一个Cat
对象,并分别传递给animalRef
引用进行调用,输出了它们各自的声音。
这种方式可以方便地在Groovy中使用lambda表达式来引用抽象类,并调用其方法。
领取专属 10元无门槛券
手把手带您无忧上云