

javaのEclipseで、「スーパーインタフェースはインタフェースでなければならない。」というエラーメッセージが出てくるのですか、どのように修正すれば、コンパイルできるようになりますか?  
[![エラーが、発生しているソースコードです](https://i.stack.imgur.com/MKba7.png)](https://i.stack.imgur.com/MKba7.png)


CC BY-SA 4.0
2020-08-08T23:44:09.717
69378
2022-05-11T08:02:40.290
2020-08-09T03:55:55.773
41424
41424
question
java
Eclipseで「スーパーインターフェースは、インタフェースでなければならない」という類のエラーメッセージが表示される


質問の画像に含まれているコードには、

[code]

    public class SampleImp implements Sample 
    
[/code]

と書かれています。

これは、「SampleImpというクラスは、Sampleというインタフェースを実装(implement)したものです」という意味です。

ここで「インタフェースでなければならない」というエラーが出るのだとしたら、Sampleがインタフェースではないのが原因だと考えられます（インターフェースを使っている(implementしている)のは最初に書いたコードのところだけですから）。

＝＝  
どのように修正するか判らないのは、質問者のクラスやインタフェースについての知識が足りないからです。  
それを解決するには、"初めてのJava"というような名前の本やMookを２，３冊、じっくりと読むと良いです。そうした本に問題が書かれていたら、それらを独力で解くと良い勉強になります。

kunifさんが紹介されているようなページで勉強するのも良いですが、できれば本やMookで勉強してください。  
なぜなら、本やMookのほうがJavaに関する事項を網羅的に書いているからです。

がんばってください！  


CC BY-SA 4.0
2020-08-09T06:27:59.770
69386
2020-08-09T06:27:59.770
217
69378
answer


`Sample.java` を開き、次のようにインタフェースとして定義してください。

[code]

    package chaper1.chapter2;
    
    public interface Sample {
    }
    
[/code]

* * *

Eclipseでは、インタフェースとして定義した場合、アイコンの右肩に `I` のマークが付きます。  
が、質問文中の画像ではそうなっていません。  
おそらく `interface` でなく `class` になっていると思われます。

[![画像の説明をここに入力](https://i.stack.imgur.com/QEl0F.png)](https://i.stack.imgur.com/QEl0F.png)


CC BY-SA 4.0
2020-08-09T11:19:12.600
69390
2020-08-09T11:19:12.600
2808
69378
answer


コード全文を見れないので推測でお答えしますが、  
3行目"implements"を"extends"へ書き換えてください。

質問者様は インターフェースの実装 と クラスの継承 がごっちゃになっていると思われます。  
原因を理解するためには  
・インターフェースとは何か  
・インターフェースの実装  
・クラスとは何か  
・クラスの継承  
あたりを検索してみるのが良いかと思います。


CC BY-SA 4.0
2022-02-28T06:57:30.577
86610
2022-02-28T06:57:30.577
51633
69378
answer