我有代码看起来像这样:我可以让派生类在Java中从其基类继承派生成员吗?
public class A
{
public void doStuff()
{
System.out.print("Stuff successfully done");
}
}
public class B extends A
{
public void doStuff()
{
System.out.print("Stuff successfully done, but in a different way");
}
public void doMoreStuff()
{
System.out.print("More advanced stuff successully done");
}
}
public class AWrapper
{
public A member;
public AWrapper(A member)
{
this.member = member;
}
public void doStuffWithMember()
{
a.doStuff();
}
}
public class BWrapper extends AWrapper
{
public B member;
public BWrapper(B member)
{
super(member); //Pointer to member stored in two places:
this.member = member; //Not great if one changes, but the other does not
}
public void doStuffWithMember()
{
member.doMoreStuff();
}
}
然而,这段代码有问题。我在两处存储了对成员的引用,但如果其中一个发生了变化,另一个则不会发生,则可能会出现问题。我知道在Java中,一个继承的方法可以将其返回类型(也可能是参数,但我不确定)缩小到派生类。田地也是如此吗?
不一定。您可以根据需要将包装器泛化为很多层,但如果您正在进行这种编码,则可能会错误地对域进行建模。 – Jherico 2010-05-11 19:16:28
对不起,我混淆了我过去的经历,我不想将二级课程泛化为可读性问题。是的,一个人愿意让'BWrapper'通用它会正常工作。 – doublep 2010-05-11 19:44:06
这个语法是什么意思? '公众班'?我只看过类型参数_after_标识符 –
Eric
2010-05-14 06:24:38