因此,有在超类型的场景中正确设定我的属性的问题。
因为我有两班,所以B班是A班的专业版。 请让我们说……
公共类a {
私有字符串名称;
私有int id;
.
}
公共类b extends a {
private Date time;
私有输入状态;
.
}
在此,您将使用一种设置为b实例的方法,而不是从结果集中设置a的属性。
publicasetproperties (resultset RS ) {
A a=new A (;
a.setname(RS.getstring )…);
.
return a;
}
我从这里拿来,试图把它作为b投影,当然并不是所有的a都是b……所以,这个不起作用。 此外,还向setProperties方法添加了另一个参数,以接收a并返回a,从而可以使用多态性获取b,但此后所有值都为空。
我在这里很为难。 感谢任何建议。
解决方法:
在超类中声明方法。 子类复盖此方法,并调用super.foo(ResultSetrs )。 其中foo )…是重写方法。 现在,您可以分析resultset以设置对象的字段。
样品
class Foo{
虚拟属性(finalresultsetrs )。
//do stuff
}
}
final class Bar extends Foo{
@Override
finalvoidsetproperties (finalresultsetrs ) {
//do stuff
super.setproperties(RS;
}
}
标签: java,oop,inheritance
资料来源: https://codeday.me/bug/2019 08 26/1731752.html