インタフェースとObjectクラスの関係について

995 ワード

このタイトルを見ると、自分の答えをよく考えるかもしれません.しかし、実際にはこれは確かに答えがなく、少なくとも彼らの間の親友関係を公式に証明していない.
看法一:先生は、インタフェースを特殊なクラスと見なすことができると言っているので、考えずにインタフェースもルートクラスObjectを継承していると思っています(この見方は最も無厘頭です)
見方2:何の関係もない.(この観点を支持する良い理由を見つけた)
どうせ出して両者に何の関係もないことを証明する.インタフェースがObjectクラスを継承する場合は、インタフェース名の後ろにextends Objectを直接追加できます.次のようにインタフェースを宣言します.明らかに、このコンパイルは通過できません.
 Interface Inter extends Object{

}

1つのインタフェースがObjectクラスを継承している場合、インタフェースはObjectクラスの多くのメソッドを継承します.それらのメソッドはすべて実メソッドであり、抽象メソッドではないため、明らかに間違っています.たとえばtoString()メソッドは,継承され,インタフェースを満たさないメソッドは抽象的なメソッドである. 
見方3:継承を隠す(この観点を支持する良い理由も見つかった)
リストインタフェースにtoString()メソッドがない場合、マルチステートまたは継承原理、System.out.println(array.toString());間違いを報告します.しかし、事実は確かに間違っていない.
List array= new ArrayList();

array.add("hello");

System.out.println(array.toString());

本人の考え.3つ目の観点は正しいかもしれませんが、確かに証明できません.隠し関係というよりは,インタフェースでObject内のすべての方法を隠して実現した可能性がある.この問題は、確かに私の能力の範囲内ではないかもしれませんが、後でもっと底辺を学ぶことができるかどうかを見て、理解します.