所以我在让我的属性在父类(super class)类型场景中正确设置时遇到了一些问题。
我有 2 个类,B 类是 A 类的特殊版本,比方说...
public class A {
private String name;
private int id;
...
}
public class B extends A {
private Date time;
private int status;
...
}
现在我要做的是使用一种方法,该方法用于从结果集中设置 A 中的属性,而不是将它们设置在 B 的实例中。
public A setProperties(ResultSet rs) {
A a = new A();
a.setName(rs.getString(...));
...
return a;
}
我曾尝试从中获取返回值并将其转换为 B,但当然并非所有 A 都是 B... 所以这是行不通的。我还尝试向 setProperties
方法添加另一个参数,以便它接受一个 A 并返回一个 A,这样我就可以使用多态性来取回我的 B,但随后我的所有值都被取消了.
我在这里不知所措,非常感谢任何建议。
最佳答案
在父类(super class)中声明方法。子类将覆盖此方法,然后调用 super.foo(ResultSet rs)
,其中 foo(...)
是被覆盖的方法。其中,您可以解析 ResultSet
并设置对象的字段。
例子-
class Foo{
void setProperties(final ResultSet rs){
// do stuff
}
}
final class Bar extends Foo{
@Override
final void setProperties(final ResultSet rs){
// do stuff
super.setProperties(rs);
}
}
有关详细信息,请参阅 Using the Keyword super .
关于java - 为子类设置父类(super class)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657134/