あなたの問題は、すでに与えられた2つの答えによって解決されると思います..あなたの声明についていくつか指摘したいだけです: -
if a class implements an interface and have a toString() method
定義するクラスにはすべてtoString()メソッドがあります。明白に見えないかもしれませんが、クラスのインスタンスを印刷すると、呼び出されるのはクラスのtoString()メソッドです..(クラスは、定義する他のすべてのクラスのスーパークラスです) .. したがって、クラスで定義されたメソッドは、他のメソッドからアクセスできます。ObjectObjectObjectclass object
このメソッドをオーバーライドして、必要に応じてインスタンスを出力することもできます..しかし、オーバーライドしないとhashcode、オブジェクトを取得しますclassname@12343.. toString()「チェックする必要はありません..メソッドは、すべてのクラスのクラスの一部であるinterfaceことを知っています..toString()Objectsuper class
we store the child reference into parent variable
あなたの理解は正しいですが、より意味のあるものにするために、この文を再構成させてください: - We Store the reference to child class object in the parent class reference variable
function uniqueness will be check in parent
私は本当に理解できません、あなたはこの文で何を意味していますか..しかし、私が理解している限り、あなたはこう言っています-「 のメソッドがchild classで呼び出されるとparent class reference、コンパイラは最初にそのメソッドがかどうかにparent classかかわらず、あなただけがメソッドを呼び出すことができます..
*編集*:-
Java 言語仕様、セクション 9.2によると: -
インターフェイスに直接のスーパーインターフェイスがない場合、インターフェイスは、署名 s、戻り値の型 r、および throws 句 t を持つ各パブリック インスタンス メソッド m に対応する、シグネチャ s、戻り値の型 r、および throws 句 t を持つパブリック抽象メンバー メソッド m を暗黙的に宣言します。ただし、同じシグネチャ、同じ戻り値の型、および互換性のある throws 句を持つメソッドがインターフェイスによって明示的に宣言されている場合を除きます。
m が Object で final として宣言されている場合に、インターフェイスがそのようなメソッド m を明示的に宣言すると、コンパイル時エラーになります。
インターフェースが Object の public メソッドとオーバーライド等価 (§8.4.2) である署名を持つメソッドを宣言しているが、異なる戻り値の型または互換性のない throws 節を持っている場合、コンパイル時エラーになります。