SubclassOne
パブリックたvoid doSomething(){}
方法を有する両方とも、ClassOne
を拡張し、InterfaceOne
を実現します。しかし、コンパイラの表示エラーメッセージ、のdoSomething()は、InterfaceOneに弱いアクセス権を割り当てる試みのdoSomething()を実装することができない、
doSomethingの()はClassOneにdoSomethingのを(実装することはできません) にInterfaceOne、弱いアクセス権を割り当てるための試みは、
公衆た誰かが私に教えてもらえますなぜコンパイラがこの特定のメッセージを表示するのですか?その背後にある理由は何ですか?
public class ClassOne {
void doSomething(){
System.out.println("do something from InterfaceMethod class");
}
}
public interface InterfaceOne {
default void doSomething(){
System.out.println("do something from InterfaceOne");
}
}
public class SubclassOne extends ClassOne implements InterfaceOne{
public static void main(String[] args) {
}
}
メソッドは暗黙のうちに 'public'です。 – Savior
私は、classoneがinterfaceoneを実装していないのですが、まだエラーが出ていると思います。 –
@TamasHegedusエラーは 'ClassOne'にありません。 'SubclassOne'がそれを上書きしようとしているので、メッセージは単に' ClassOne'を参照します。このエラーは 'SubclassOne'にあり、' doSomething'をパッケージプライベートとして継承し、 'InterfaceOne'に対して' public'として実装しようとしています。これは正確な複製です。 – Savior