LoginSignup
sincegim0211
@sincegim0211 (Takahiro K)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

JavaのInterfaceにおける継承時の多重implementについて

当方初心者です。言葉では説明しづらいので早速コードを記入いたします

public interface Human {
}
public class Parent implements Human{
}
public class Child extends Parent implements Human{
}

不躾で申し訳ありませんが、このコードが許される理由はなんでしょうか。

[Human]をinplementsした[Parent]を継承した[Child]クラスは最初から[Human]を持っているように思えます。
このコードでは[Child]の中に[Human]を持つ[Parent]と[Human]を持つ差分(?)のオブジェクトが混在していて、多重implementsしている扱いにならないのでしょうか?

もしくは例えば、[Serializable]のようなマーカーインターフェースも、それをinplementsした親クラスを継承した子クラスでも直列化したければ子クラスにも[Serializable]をimplementsしないといけないのでしょうか?

初歩的な質問で重ね重ね申し訳ありませんがお答えいただけると幸いです

0

1Answer

@reta
ご回答ありがとうございます。
該当箇所を読ませていただきました。
親クラスと親インターフェースで同一シグネチャのメソッドが存在する場合の記述はありましたが、これはとても参考になりました。重ねてお礼申し上げます。
ただ、おそらく私の質問が言葉足らずだったと思うのですが、今回聞きたかったのは「継承関係にある親クラスと子クラスで同一インターフェースをimplementsする意味があるのか(特にマーカーインターフェース)」ということです。申し訳ありません。

0

Your answer might help someone💌