Как переопределить метод из суперкласса в классе, который расширяет суперкласс, в Groovy? Путь Java не работает, поскольку выполняются оба метода (один в суперклассе и один в подклассе). Например:Переопределение метода в Groovy
class SuperClass {
SuperClass(){
println("This is the superclass")
}
def awaitServer(){
println("awaiting server in the superclass")
}
}
class SubClass extends SuperClass{
SubClass(){
println("This is the subclass")
}
@Override
def awaitServer(){
println("awaiting server in the subclass")
}
}
//////
SubClass sb = new SubClass()
sb.awaitServer()
вывода я получаю:
awaiting server in the superclass
awaiting server in the subclass
Как вы можете видеть оба метода выполняются, когда я буду перекрывая метод суперкласса в подклассе. Почему это происходит? Как метод переопределяется в Groovy?
Я искал в Интернете, но им не удалось это выяснить. Может ли кто-нибудь предоставить образец или простой пример?
Спасибо заранее,
I думаю, что вы потеряли что-то в своем переводе на пример, как работает ... –
он будет печатать один из двух, а не оба - независимо от того, что происходит. если вы не забыли в своем примере, что в подклассе в 'awaitServer' есть вызов' super'. – cfrick