interface iMyInterface {
public iMethod1();
}
public class cMyClass implements iMyInterface{
public iMethod1() {
System.out.println("From Method1");
}
protected iMethod2() {
System.out.println("From Method2");
}
}
class AppMain
{
iMyInterface i=new cMyClass();
public static void main(){
i.iMethod1();
((cMyClass)i).iMethod2();
}
}
これにより、次のように出力が生成されます
方法1から
方法2から
becozインターフェースオブジェクトはそのクラスにキャストされます
しかし、私の質問は、この次の場合にはキャストできないということです
class AppMain
{
iMyInterface i=new cMyClass();
public static void main(){
i.iMethod1();
this.((cMyClass)i).iMethod2();
}
}
Eclipse IDEは次のエラーを表示します:トークン "。"の構文エラー、このトークンの後に識別子が必要です。
私はどちらの方法でも同じフィールドにアクセスすることを理解していません。