あなたの問題は、すでに与えられた2つの答えによって解決されると思います..あなたの声明についていくつか指摘したいだけです: -
if a class implements an interface and have a toString() method
定義するクラスにはすべてtoString()
メソッドがあります。明白に見えないかもしれませんが、クラスのインスタンスを印刷すると、呼び出されるのはクラスのtoString()
メソッドです..(クラスは、定義する他のすべてのクラスのスーパークラスです) .. したがって、クラスで定義されたメソッドは、他のメソッドからアクセスできます。Object
Object
Object
class object
このメソッドをオーバーライドして、必要に応じてインスタンスを出力することもできます..しかし、オーバーライドしないとhashcode
、オブジェクトを取得しますclassname@12343
.. toString()
「チェックする必要はありません..メソッドは、すべてのクラスのクラスの一部であるinterface
ことを知っています..toString()
Object
super 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 節を持っている場合、コンパイル時エラーになります。