Overriding

Pessoal, de repente me surgiu uma dúvida:

Quando faço override de um método, eu posso usar modificadores mais visíveis ou mais restritos? Por exemplo:

class Superclass {
    void foo() {}
}

class Subclass extends Superclass {
    [qual?] foo() {}
}

Valeu!
[]'s

so mais abrangentes!

no seu caso, pode ser protected ou public (eu deixar igual como ta que é default )

Valeu Max!

Acabei de ver também um exemplo real, a implementação do método clone(), que em Object é declarado como protected, e no exemplo foi overridden como public.

Obrigado pela ajuda!
[]'s