参照変数は、クラスタイプまたはインターフェイスタイプとして宣言できます。変数がインターフェイスタイプとして宣言されている場合、インターフェイスを実装する任意のクラスの任意のオブジェクトを参照できます。
上記のステートメントに基づいて、私は理解に関するコードを作成しました。上記でインターフェイスタイプとして宣言されているように、インターフェイスを実装する任意のクラスの任意のオブジェクトを参照できます。
しかし、私のコードでは、displayName()
未定義のメソッドを次の場所に表示していますobjParent.displayName()
:
public class OverridenClass {
public static void main(String[] args) {
Printable objParent = new Parent();
objParent.sysout();
objParent.displayName();
}
}
interface Printable {
void sysout();
}
class Parent implements Printable {
public void displayName() {
System.out.println("This is Parent Name");
}
public void sysout() {
System.out.println("I am Printable Interfacein Parent Class");
}
}
私は間違った方法を理解したと確信しています。誰かが同じことを説明できますか?