最近、仕事でJAVAを始めた初心者です。
どうしても理解できないコンパイルエラーが出るので
どなたか教えてください。

以下のインタフェースTestIF とそれを実装するクラス
TestCL をひとつのソースファイルにTest.javaに書いて
コンパイルします。(以下参照)
---------------------------- Test.java ---------
interface TestIF
{
 void f();
}

class TestCL implements TestIF
{
 void f() {}
}
------------------------------------------------
すると以下のエラーが出ます。

Test.java:7: TestCL の f() は TestIF の f() を実装できません。
スーパークラスでの定義より弱いアクセス特権 (public) を割り当てようとしました。
class TestCL implements TestIF
^
疑問1
このエラーメッセージで、「スーパークラス」とは何を指しているの
でしょうか?

疑問2
仮に「スーパークラス」を「インタフェース」と解釈
しても、void f() はTestCLクラスで元のインタフェースでの定義
でのデフォルトアクセス修飾(パッケージのみ)と同じなので
「より弱いアクセス特権」というメッセージも理解できません。

疑問3
「(public) を割り当てようとしました。」というのも、、
してねーじゃん!!としかおもえません。

どなたか、アドバイスおねがいします。