gpt4 book ai didi

java - 使用子类的字段执行父方法

转载 作者:行者123 更新时间:2023-11-30 05:51:28 25 4
gpt4 key购买 nike

想到以下问题的优雅解决方案,我的头很痛。我有一个父类和几个子类。我的父类声明并实现了一个方法来检索属性,但是属性文件的名称由子类决定。

我只使用子类的实例。

该方法(在父类中实现)应该使用子类的字段值,但由于我在父类中使用它,所以我也需要在父类中声明它。

现在,每次我从子类调用方法时,都会使用父类的字段值。

一些简单的代码来说明我的问题(请记住:这与功能无关——更多的是与设计有关)。定义我要使用的字段值的子类:

public class SubClass extends Parent {
public static final String CONFIG_FILE = "subclass.properties"; // same problem with non-static
public SubClass() {
System.out.println(getProperty("somekey"));
}
}

以及定义和实现我要使用的方法的父类:

public class Parent {
public static final String CONFIG_FILE = "config.properties"; // same problem with non-static
public String getProperty(String key) {
Properties props = new Properties();
try {
props.load(new FileReader(new File(CONFIG_FILE)));
}
catch (IOException ioe) {
return null;
}
return props.get(key);
}

因为我从子类调用 getProperty(..),我希望它使用它正在操作的实例的字段值(“subclass.properties”),但是相反它使用父字段值(“config.properties”)。我对非静态字段也有同样的效果。

最佳答案

查看您的代码,您正在使用 Parent.CONFIG_FILE,在子类中您应该使用 SubClass.CONFIG_FILE

关于java - 使用子类的字段执行父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679706/

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