从派生类访问Abstract类的字段

时间:2015-10-18 09:11:03

标签: oop groovy

我试图从两个具体类中抽象出方法和字段。我不确定抽象类中的字段..

如果我尝试将它们设为Singleton对象,SearchFactoryWorkFactory是否会访问相同的products字段?但是,如果我创建具体工厂的新实例,products是一个针对不同实例的新隔离字段吗?

SlashCommand

interface SlashCommand {

}

SlashCommandFactory

abstract class SlashCommandFactory {
    protected HashMap<String, SlashCommand> products

    SlashCommand getProduct( String key ) {
        products.key
    }

    void registerProduct( String key, String value ) {
        products << [ key: value ]
    }
}

SearchFactory

class SearchFactory extends SlashCommandFactory {

}

WorkFactory

class WorkFactory extends SlashCommandFactory {

}

1 个答案:

答案 0 :(得分:0)

您的产品Mapstatic,这意味着它将是该类所有实例中的相同对象。它属于,而不属于对象

如果您将其访问修饰符设置为private,则无法访问该字段。将其更改为protected以直接从子类访问它。