gpt4 book ai didi

java - 使用此运算符通过接口(interface)强制转换实现的类

转载 作者:行者123 更新时间:2023-12-01 17:31:28 25 4
gpt4 key购买 nike

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

因为接口(interface)对象被转换为该类

但我的问题是我无法在以下情况下进行转换

class AppMain
{
iMyInterface i=new cMyClass();
public static void main(){
i.iMethod1();
this.((cMyClass)i).iMethod2();
}
}

Eclipse IDE 显示以下错误:标记“.”存在语法错误,此标记后应有标识符。

我不明白这个无论哪种方式我都访问相同的字段。

最佳答案

你只是在错误的点进行转换。你想要:

((cMyClass) this.i).iMethod2();

并不是说您一个this可以在示例中的main等静态方法中引用...

(另请注意,您的类型等均不遵循 ​​Java 命名约定...)

关于java - 使用此运算符通过接口(interface)强制转换实现的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com