tortoise_113944
@tortoise_113944

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Java Silver 黒本の問題集第1章の設問2 

protectedは同一のパッケージまたはサブクラスのアクセスが可能だと思うのですが
SampleImplクラスはSampleクラスを継承しているにも関わらず、
なぜコンパイルエラーが発生するのかわかません。

public class Sample{
protected int num =10;
}

package ex 4;
public class SampleImpl extends Sample {
public static void main(String[] args){
System.out.println(num);
}
}

0

1Answer

エラーメッセージを示してください。

package文の書き方が間違っているのではありませんか?
継承しなくてもエラーになりました。

SampleImpl.java
package ex 4;
public class SampleImpl {
    public static void main(String[] args){
        System.out.println("Hello, world!");
    }
}
$ javac SampleImpl.java
SampleImpl.java:1: エラー: ';'がありません
package ex 4;
          ^
エラー1個

package指定を直したとしても、staticメソッドから非staticメンバにアクセスすることはできないのでエラーになります。

1Like

Your answer might help someone💌