Die Java-abstrakte Klasse implementiert die Schnittstelle

8

Ich habe die folgende Schnittstelle und abstrakte Klasse, die es implementiert:

%Vor%

Und die folgenden konkreten Implementierungen:

%Vor%

Alles zusammenfügen:

%Vor%

Ich bekomme diesen Fehler

  

"walk () in Cat kann Walk () in Walk nicht implementieren".

Irgendwelche Ideen? Danke

    
Marin 14.12.2011, 22:09
quelle

4 Antworten

18

Methoden in Schnittstellen sind implizit public . Methoden in Klassen sind jedoch standardmäßig in Paket sichtbar. Sie können die Sichtbarkeit einer überschriebenen Methode nicht reduzieren, d. H., Sie können nicht so etwas tun:

%Vor%

In Ihrem Fall besteht die Lösung darin, walk() als public in Dog und Cat zu deklarieren.

    
Oliver Charlesworth 14.12.2011, 22:13
quelle
2

Die Fehler-Eklipse gibt es:

  

Die Sichtbarkeit der geerbten Methode aus Walk

kann nicht verringert werden

Die Methode muss öffentlich sein, da sie in einer Schnittstelle definiert ist.

    
Bozho 14.12.2011 22:14
quelle
1

Schnittstellenmethoden müssen öffentlich sein. Sie müssen walk() in Cat.

als öffentliche Methode deklarieren     
Ted Hopp 14.12.2011 22:14
quelle
1

Machen Sie String walk() implementations public . Das wird es beheben

    
reederz 14.12.2011 22:19
quelle

Tags und Links