Frage

1    public interface Word { boolean isSpelled(String w); }
2    
3    abstract class Verb3 implements Word {
4       boolean isSpelled(String w) { return true;}
5    }

Dies ist eine Frage aus dem OCJP -Mock -Test. Der obige Code gibt Fehler in Zeile 4 zurück, und die Antwort besagt, dass die Verb3 -Klasse nicht versucht, eine schwächere Zugriffsberechtigte an die methode zuzuweisen.

Weiß jemand, was es bedeutet?

Wenn Sie Schnittstellen implementieren, sollte das Zugriffsberechtigte außerdem von den Methoden abhängen, die in den Schnittstellen deklariert werden? Zum Beispiel,

1    public interface Word { public boolean isSpelled(String w); }

Mithilfe der Öffentlichkeit oder des Standards (in diesem Fall kein Zugriffsmodifikator) können Sie auf die Methode zugreifen oder überschreiben. Bitte korrigieren Sie mich, falls ich falsch liege. Vielen Dank.

War es hilfreich?

Lösung

Wenn Sie eine Methode in einer Schnittstelle deklarieren public standardmäßig. Aber wenn Sie es in einer Klasse definieren, ist es so, als ob Sie den Zugriffsmodifikator nicht angeben default. Bei der Implementierung einer Schnittstelle können Sie die überarbeitete Methode keinen schwächeren Zugriff zuweisen. Wenn Sie eine Schnittstellenmethode implementieren, muss sie deklariert werden public.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top