Java中的匿名子类方法

时间:2019-07-04 19:26:41

标签: java subclass

所以基本上,我有一个对象,该对象会初始化,然后创建一个匿名子类:

public NECRONOMICON;

NECRONOMICON = new Item(arguments here){
public ArrayList<String> str = new ArrayList<String>();

public ArrayList<String> getStr(){
    return this.str;
}

那是伪代码,但希望我的意图很明确。 这部分工作正常,它使我可以创建item子类。

但是,当尝试访问此方法时,

NECRONOMICON.getStr()

我得到The method getStr() is undefined for the type Item

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

getStr()方法将不可见,因为您正在创建'Item'的匿名子类。.仅'Item'及其父类的方法可见。

换句话说,当您创建类似“ new Item(){}”的对象时,实际上是在创建Item类的子类。这个新的子类是匿名的,您在其中定义的任何新方法都无法通过其引用访问。发生这种情况是因为引用变量的类型为'Item',并且类型'Item'不包含名为'getStr()'的方法